|
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)
复制代码
|
|