繁体   English   中英

比较Python中txt文件的内容

[英]Comparing contents of txt files in Python

我正在尝试编写一个程序来打开文件,读取内容并将它们与打开的其他文件进行比较。 我需要显示它们是否不够相似、相似或彼此完全相同。 我正在尝试使用 filecmp 模块,但它对我不起作用。 这是我到目前为止所拥有的:

import filecmp

#Opens selected files
file1 = open('file1.txt')
file2 = open('file2.txt')

#Compares different files
filecmp.cmp('file1','file2', shallow=False)

#Closes Files
filecmp.clear_cache()
close.file1
close.file2

有什么建议?

filecmp是错误的工具
试试这个:
1.将每个文件的内容加载到一个列表中
2. 将列表变成集合 3. 从另一个集合中减去一个集合 4. 结果提供了您可以分析的两者之间的差异。

例如:

list1 = set(line.strip() for line in open("file1.txt"))
list2 = set(line.strip() for line in open("file2.txt"))
diff1 = list1 - list2 # subtract 1 set from the other for the difference
diff2 = list2 - list1 # subtract 1 set from the other for the difference
save = open("diff.txt",'w') # Write file differences details for analysis
for i in diff1:
    save.write(i+'\n')
save.close()
save = open("diff2.txt",'w') # Write file differences details for analysis
for i in diff2:
    save.write(i+'\n')
save.close()

或查看difflibhttps://docs.python.org/3.5/library/difflib.html#difflib.Differ

>>> import filecmp
>>> filecmp.cmp('C://Desktop/a.txt', 'C://Desktop/b.txt')
True
>>> 

在这种情况下,我有 2 个文本文件a.txtb.txt 两个文件都包含相同的一行string

如果我将其中一个文件中的string更改为不同的内容,则输出为False

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM