文件找不同代码求教
from pathlib import Pathf1 = 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}行不一样")
不管两个文件内容有多么千差万别,它始终打印
一模一样!
{:10_284:} 本帖最后由 qq1151985918 于 2022-5-17 21:35 编辑
{:9_219:}
运行了下你的代码,可以正常出现结果:
Twilight6 发表于 2022-5-17 21:16
运行了下你的代码,可以正常出现结果:
{:10_324:} Ari小虎鱼 发表于 2022-5-17 21:23
哈哈 我懂了,你忘记加路径了{:10_282:}
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
>>>
就很懵 Ari小虎鱼 发表于 2022-5-17 21:31
什么都没改,它现在变成这样了
就很懵
哈,那是因为你文件编码和 open 打开编码不一致哈
你试试在两个 open 参数中添加 encoding = "utf-8"
Twilight6 发表于 2022-5-17 21:33
哈,那是因为你文件编码和 open 打开编码不一致哈
你试试在两个 open 参数中添加 encoding = "utf ...
它终于正常了{:10_266:}
感谢我的神 qq1151985918 发表于 2022-5-17 21:11
{:10_256:} 文件比较的前提是,被比较的文件应当具有可比性,那么,什么是可比性?对于文本文件而言,首先,文件长度必须相等,然后,文件行数必须一致,最后,是对应行的字符数必须相等,否则,根本无法比较,而且,比较结果也毫无意义。
页:
[1]