鱼C论坛

 找回密码
 立即注册
查看: 1985|回复: 1

029讲课后习题:比较文件

[复制链接]
发表于 2019-11-7 16:09:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
编写一个程序,比较用户输入的两个文件,如果不同,显示出所有不同处的行号与第一个不同字符的位置。

课后题答案只显示了不同处的行号,我自己尝试显示第一个不同字符的位置,但有点问题:
程序运行后可以成功识别不同的数量,但只显示第一处不同所在的位置,其他不同处的行号和字符位置没有显示

  1. file_name_1 = input('请输入想要比较的第一个文件名:')
  2. file_name_2 = input('请输入想要比较的第二个文件名:')

  3. f1 = open(file_name_1)
  4. f2 = open(file_name_2)

  5. count = 0
  6. differ = []
  7. differ_2 = []
  8. f1.seek(0,0)
  9. f2.seek(0,0)

  10. for line1 in f1:
  11.     line2 = f2.readline()
  12.     count += 1
  13.     if line1 != line2:
  14.         differ.append(count)
  15.         count_str = 1
  16.         if line1[count_str-1] != line2[count_str-1]:
  17.             differ_2.append(count_str)
  18.         else:
  19.             count_str += 1

  20. f1.close()
  21. f2.close()

  22. if len(differ) == 0:
  23.     print('两个文件完全一样!')
  24. else:
  25.     print('两个文件共有%d行不同:'%len(differ))
  26.     list = []
  27.     for each in zip(differ,differ_2):
  28.         list.append(each)
  29.     for each in list:
  30.         print('第%d行第%d个字母开始不同'%each)
  31.         
复制代码


运行后显示如下:
  1. 请输入想要比较的第一个文件名:E:\学习资料\Python\练习文件\something_2.txt
  2. 请输入想要比较的第二个文件名:E:\学习资料\Python\练习文件\something.txt
  3. 两个文件共有2行不同:
  4. 第1行第1个字母开始不同
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-11-9 08:50:58 | 显示全部楼层
ball ball大家康康我吧
大家帮帮我吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-1-20 15:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表