鱼C论坛

 找回密码
 立即注册
查看: 1924|回复: 9

[已解决]文件找不同代码求教

[复制链接]
发表于 2022-5-17 21:08:46 | 显示全部楼层 |阅读模式

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

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

x
  1. from pathlib import Path

  2. f1 = Path(input("请输入需要比较的头一个文件名:"))
  3. f2 = Path(input("请输入需要比较的另一个文件名:"))
  4. f1 = open(f1,'r')
  5. f2 = open(f2,'r')

  6. count = 0
  7. ans = []
  8. for line1 in f1:
  9.     line2 = f2.readline()
  10.     count += 1
  11.     if line1 != line2:
  12.         ans.append(count)

  13. f1.close()
  14. f2.close()
  15.    
  16. if len(ans) == 0:
  17.     print("一模一样!")
  18. else:
  19.     print(f"两个文件共有【{len(ans)}】处不同:")
  20.     for each in ans:
  21.         print(f"第{each}行不一样")
复制代码

不管两个文件内容有多么千差万别,它始终打印
  1. 一模一样!
复制代码

最佳答案
2022-5-17 21:16:25

运行了下你的代码,可以正常出现结果:

Snipaste_2022-05-17_21-15-31.jpg

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

使用道具 举报

发表于 2022-5-17 21:11:42 From FishC Mobile | 显示全部楼层
本帖最后由 qq1151985918 于 2022-5-17 21:35 编辑

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

使用道具 举报

发表于 2022-5-17 21:16:25 | 显示全部楼层    本楼为最佳答案   

运行了下你的代码,可以正常出现结果:

Snipaste_2022-05-17_21-15-31.jpg

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

使用道具 举报

 楼主| 发表于 2022-5-17 21:23:13 | 显示全部楼层
Twilight6 发表于 2022-5-17 21:16
运行了下你的代码,可以正常出现结果:

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

使用道具 举报

发表于 2022-5-17 21:24:50 | 显示全部楼层



哈哈 我懂了,你忘记加路径了

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

使用道具 举报

 楼主| 发表于 2022-5-17 21:31:40 | 显示全部楼层
Twilight6 发表于 2022-5-17 21:24
哈哈 我懂了,你忘记加路径了

什么都没改,它现在变成这样了
  1. 请输入需要比较的头一个文件名:C:\Users\Zhou Yiyun\Desktop\测试\1.txt
  2. 请输入需要比较的另一个文件名:C:\Users\Zhou Yiyun\Desktop\测试\2.txt
  3. Traceback (most recent call last):
  4.   File "C:\Users\Zhou Yiyun\Desktop\测试\^第029讲-找不同.py", line 10, in <module>
  5.     for line1 in f1:
  6. UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 2: illegal multibyte sequence
  7. >>>
复制代码

就很懵
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-17 21:33:03 | 显示全部楼层
Ari小虎鱼 发表于 2022-5-17 21:31
什么都没改,它现在变成这样了

就很懵



哈,那是因为你文件编码和 open 打开编码不一致哈

你试试在两个 open 参数中添加 encoding = "utf-8"

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

使用道具 举报

 楼主| 发表于 2022-5-17 21:36:58 | 显示全部楼层
Twilight6 发表于 2022-5-17 21:33
哈,那是因为你文件编码和 open 打开编码不一致哈

你试试在两个 open 参数中添加 encoding = "utf ...

它终于正常了
感谢我的神
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-17 21:37:43 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-17 21:46:59 | 显示全部楼层
        文件比较的前提是,被比较的文件应当具有可比性,那么,什么是可比性?对于文本文件而言,首先,文件长度必须相等,然后,文件行数必须一致,最后,是对应行的字符数必须相等,否则,根本无法比较,而且,比较结果也毫无意义。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-29 04:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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