我正在尝试编写一个程序来打开文件,读取内容并将它们与其他打开的文件进行比较。我需要证明它们是否相近,相似或完全相同。我正在尝试使用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
有什么建议吗?
答案 0 :(得分:3)
filecmp
是使用
的错误工具
试试这个:
1.将每个文件的内容加载到列表中
2.将列表转换为集合
3.从另一组中减去一组
结果提供了你可以分析的两者之间的差异。
例如:
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()
或查看difflib
https://docs.python.org/3.5/library/difflib.html#difflib.Differ
答案 1 :(得分:0)
>>> import filecmp
>>> filecmp.cmp('C://Desktop/a.txt', 'C://Desktop/b.txt')
True
>>>
在这种情况下,我有2个文本文件a.txt
和b.txt
。两个文件都包含相同的一行string
。
如果我将其中一个文件中的string
更改为其他文件,则输出为False