|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
try1.txt 内容:
ab
abc
abcd
abcdf
try2.txt 内容:
abc
abc
abcd
abcdf
666
我本意是程序判断出第1行和第5行不同,但没想到第4行也被判定为不同的了,观察发现是try1.txt文件末尾没有'\n'造成的
不知道怎么改进代码,能让程序判断得和人直观感受一样,第4行判断为相同- def compareTxt(file_name1, file_name2):
- f1 = open(file_name1, 'r')
- f2 = open(file_name2, 'r')
- difference = 0
- count = 0
- list1 = list()
- while True:
- one = f1.readline()
- print('f1:' + one)
- another = f2.readline()
- print('f2:' + another)
- count += 1
- if one == '' and another == '':
- break
- if one != another:
- difference += 1
- list1.append(count)
- print('两个文件共有【%d】处不同:' % difference)
- for each in list1:
- print('第 %d 行不一样' % each)
-
- f1.close()
- f2.close()
- file_name1 = input('请输入需要比较的头一个文件名:')
- file_name2 = input('请输入需要比较的另一个文件名:')
- compareTxt(file_name1, file_name2)
复制代码
- import itertools
- def compareTxt(file_name1, file_name2):
- f1 = open(file_name1, 'r')
- f2 = open(file_name2, 'r')
- list1 = list(f1)
- list2 = list(f2)
- list3 = []
- for line, each in enumerate(itertools.zip_longest(list1, list2)):
- if None in each or each[0].replace('\n', '') != each[1].replace('\n', ''):
- list3.append(line + 1)
- print('两个文件共有【%d】处不同:'%len(list3))
- for each in list3:
- print('第 %d 行不一样'%each)
-
- f1.close()
- f2.close()
- file_name1 = input('请输入需要比较的头一个文件名:')
- file_name2 = input('请输入需要比较的另一个文件名:')
- compareTxt(file_name1, file_name2)
复制代码
- 请输入需要比较的头一个文件名:try1.txt
- 请输入需要比较的另一个文件名:try2.txt
- 两个文件共有【2】处不同:
- 第 1 行不一样
- 第 5 行不一样
复制代码
|
|