忽略元数据的Python文件校验和

4

以下是获取文件校验和的代码:

import hashlib   
print hashlib.md5(open('file.mp3','rb').read()).hexdigest()

结果是一个包含元数据和文件内容的校验和。有没有一种方法可以只考虑文件内容而忽略元数据?


1
你的意思是它会考虑mp3元数据吗?这似乎是特定于mp3文件的:难道你不能使用像eyeD3或Mutagen这样的库来清除所有元数据,以便你比较的所有文件都具有空的(或至少相同的)元数据吗? - Herman Schaaf
嗨@HermanSchaaf,我不能删除mp3的元数据,因为我需要它们。 - simotod
但是你不需要它们来进行校验和;唯一的解决方法是暂时删除元数据(或仅隔离数据),然后获取没有元数据的文件的校验和。您可以在临时文件中或甚至在内存中执行此操作,无需替换原始文件。 - Herman Schaaf
1
使用struct模块来解包mp3文件的元数据和数据,然后只需对数据进行校验和。 - Netwave
1
ID3标签是文件的一部分内容。您需要处理文件内容,并仅提供感兴趣的字节给MD5函数。 - dsh
也许可以参考:http://stackoverflow.com/questions/13784993/how-do-i-uniquely-identify-the-content-of-a-media-file-in-python-not-the-metada - k-nut
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接