Python 有什么方法或类可以比较两个视频文件?
我正在尝试写一个程序,用来比较文件并显示重复的内容,使用的是Python。有没有人知道有什么好的函数或者方法可以用来做这个?我有点迷茫……
3 个回答
0
我建议你先比较文件名和文件大小。如果发现它们相同,你可以再逐字节地检查文件内容,虽然这样可能会比较耗费资源。
我不知道有没有可以在Python中做到这一点的库。
1
我会使用os.walk这个工具来遍历文件夹里的所有文件。
对于每个文件,我会记录下它的绝对路径加上文件名,并且根据文件大小和文件特征来分类(比如前16个字节?前512个字节的哈希值?还是整个文件的哈希值?)。
完成后,你会得到一个字典,里面是文件大小;对于每个文件大小,又有一个字典存放文件特征;对于每个特征,还有一个列表,列出所有具有相同特征的文件。如果你的文件特征不是基于整个文件,或者有很大可能会出现重复的情况,那么你可以对这些重复的文件进行更深入的比较。
3
如果你只是想找完全相同的文件,可以对两个文件做一个叫做 MD5哈希 的处理,看看它们的结果是否一样:
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的Python接口,逐帧检查它们是否匹配。