|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置。
课后题答案只显示了不同处的行号,我自己尝试显示第一个不同字符的位置,但有点问题:
程序运行后可以成功识别不同的数量,但只显示第一处不同所在的位置,其他不同处的行号和字符位置没有显示
- file_name_1 = input('请输入想要比较的第一个文件名:')
- file_name_2 = input('请输入想要比较的第二个文件名:')
- f1 = open(file_name_1)
- f2 = open(file_name_2)
- count = 0
- differ = []
- differ_2 = []
- f1.seek(0,0)
- f2.seek(0,0)
- for line1 in f1:
- line2 = f2.readline()
- count += 1
- if line1 != line2:
- differ.append(count)
- count_str = 1
- if line1[count_str-1] != line2[count_str-1]:
- differ_2.append(count_str)
- else:
- count_str += 1
- f1.close()
- f2.close()
- if len(differ) == 0:
- print('两个文件完全一样!')
- else:
- print('两个文件共有%d行不同:'%len(differ))
- list = []
- for each in zip(differ,differ_2):
- list.append(each)
- for each in list:
- print('第%d行第%d个字母开始不同'%each)
-
复制代码
运行后显示如下:
- 请输入想要比较的第一个文件名:E:\学习资料\Python\练习文件\something_2.txt
- 请输入想要比较的第二个文件名:E:\学习资料\Python\练习文件\something.txt
- 两个文件共有2行不同:
- 第1行第1个字母开始不同
复制代码
|
|