| 
 | 
 
5鱼币 
 本帖最后由 WXF666 于 2019-12-26 22:32 编辑  
 
想要的效果是:找到两个文件中不同的地方,只在文件1内将两者不同的地方,将1换成2,2换成1,其他不变,录数据的时候性别弄反了555 
- def file_compare(file1, file2):
 
 -     f1 = open(file1)
 
 -     f2 = open(file2)
 
 -   
 
 -     for line1 in f1:
 
 -         line2 = f2.readline()
 
 -         count += 1
 
 -         if line1 != line2:
 
 -             line1 = line1.replace('1','2')
 
 -             line1 = line1.replace('2','1')
 
  
-     f1.close()
 
 -     f2.close()
 
  
- file1 = input('请输入需要比较的头一个文件名:')
 
 - file2 = input('请输入需要比较的另一个文件名:')
 
  
- differ = file_compare(file1, file2)
 
  复制代码 
- def file_compare(file1, file2):
 
 -     f1 = open(file1)    # 打开文件编码注意一下,由于不知道编码我就不改这两行了,其实可以用chardet模块预测编码
 
 -     f2 = open(file2)
 
 -     lines1 = f1.readlines()
 
 -     lines2 = f2.readlines()
 
 -     f1.close()
 
 -     f2.close()
 
 -   
 
 -     for i in range(len(lines1)):
 
 -         if lines1[i] != lines2[i]:    # 如果文件1的第i行和文件2的第i行不同
 
 -             line = list(lines1[i])
 
 -             for j in range(len(line)):
 
 -                 if line[j] == '1':    # 那么第i行所有的‘1’都被替换为‘2’
 
 -                     line[j] = '2'
 
 -                 elif line[j] == '2':  # 那么第i行所有的‘2’都被替换为‘1’
 
 -                     line[j] = '1'
 
 -             line = ''.join(line)
 
 -             lines1[i] = line
 
  
-     with open('new_'+file1, 'w', encoding='utf-8') as new:  # 替换完成后新建 'new_'+'文件1' 为名的新文件,不覆盖文件1
 
 -         new.writelines(lines1)
 
 -         new.close()
 
  
-     print('完成!')
 
  
 
- file1 = input('请输入需要比较的头一个文件名:')
 
 - file2 = input('请输入需要比较的另一个文件名:')
 
  
- file_compare(file1, file2)
 
  复制代码 
 
 
 |   
 
 
 
 
 
 |