鱼C论坛

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

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

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

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

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

x
from pathlib import Path

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

count = 0
ans = []
for line1 in f1:
    line2 = f2.readline()
    count += 1
    if line1 != line2:
        ans.append(count)

f1.close()
f2.close()
    
if len(ans) == 0:
    print("一模一样!")
else:
    print(f"两个文件共有【{len(ans)}】处不同:")
    for each in ans:
        print(f"第{each}行不一样")
不管两个文件内容有多么千差万别,它始终打印
一模一样!
最佳答案
2022-5-17 21:16:25

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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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



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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

什么都没改,它现在变成这样了
请输入需要比较的头一个文件名:C:\Users\Zhou Yiyun\Desktop\测试\1.txt
请输入需要比较的另一个文件名:C:\Users\Zhou Yiyun\Desktop\测试\2.txt
Traceback (most recent call last):
  File "C:\Users\Zhou Yiyun\Desktop\测试\^第029讲-找不同.py", line 10, in <module>
    for line1 in f1:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 2: illegal multibyte sequence
>>> 
就很懵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

就很懵



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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

它终于正常了
感谢我的神
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-17 21:37:43 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 08:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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