2011-02-02 164 views
0

我正试图编写一个程序来比较文件并显示python中的重复项。任何人都知道与此相关的任何良好功能或方法?我正在失去...Python方法或类来比较两个视频文件?

+2

您是否在比较图像或原始字节? (也就是说,应该两个视频文件在本质上是相同的视频,但有不同的分辨率/质量/诸如此类的东西匹配或不呢?) – 2011-02-02 22:41:25

+0

什么都更容易实现。 – DCIndieDev 2011-02-06 21:51:07

回答

0

我会先开始比较文件名和文件大小。如果找到匹配项,则可以循环遍历文件的字节以进行比较,但这可能相当密集。

我不知道可以在python中做到这一点的库。

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和检查,如果他们通过帧匹配帧。

0

我会使用os.walk来浏览文件树。

对于每个文件,我将存储absolutepath +文件名,由文件大小和索引签名(前16个字节?上的整个文件前512个字节?哈希的哈希?)。

完成后,最终得到一个文件大小的字典;对于每个大小,文件签名的字典;对于每个签名,共享该签名的所有文件的列表。如果您的文件签名不是基于完整文件,或者具有很大的冲突几率,则可以对这些冲突文件进行更深入的比较。