我正在尝试编写一个程序来比较文件并在python中显示重复项。有人知道与此相关的任何好的功能或方法吗?我很遗憾...
答案 0 :(得分:2)
如果您只是在寻找完全重复的内容,请在两者上进行MD5 hash,看看它们是否匹配:
import hashlib
file1 = open('file1.avi', 'r').read()
file2 = open('file2.avi', 'r').read()
if hashlib.sha512(file1).hexdigest() == hashlib.sha512(file2).hexdigest():
print 'They are the same'
else:
print 'They are different'
如果没有,我会尝试OpenCV's Python Bindings并检查它们是否逐帧匹配。
答案 1 :(得分:0)
我首先要开始比较文件名和文件大小。如果找到匹配项,则可以循环遍历文件的字节以进行比较,尽管这可能非常密集。
我不知道可以在python中执行此操作的库。
答案 2 :(得分:0)
我会使用os.walk浏览文件树。
对于每个文件,我会存储绝对路径+文件名,由文件大小和签名索引(前16个字节?前512个字节的哈希?完整文件中的哈希?)。
完成后,你最终得到一个文件大小的字典;对于每种尺寸,文件签名的字典;对于每个签名,共享该签名的所有文件的列表。如果您的文件签名不是基于完整文件,或者具有很大的冲突机会,那么您可以对这些冲突文件进行更深入的比较。