【发布时间】:2016-03-20 01:33:08
【问题描述】:
这是我获取文件校验和的代码:
import hashlib
print hashlib.md5(open('file.mp3','rb').read()).hexdigest()
结果是包含元数据和文件内容的校验和。 有没有办法只考虑文件内容而忽略元数据?
【问题讨论】:
-
你的意思是它正在考虑 mp3 元数据吗?这似乎是 mp3 文件特有的:您不能使用 eyeD3 或 Mutagen 之类的库来清除所有元数据,因此您比较的所有文件都有空(或至少相同)元数据吗?
-
嗨 @HermanSchaaf,我无法从 mp3 中删除元数据,因为我需要它们
-
但您不希望它们用于校验和;唯一的做法是暂时删除元数据(或仅隔离数据),然后获取没有元数据的文件的校验和。您可以在临时文件甚至内存中进行,无需替换原始文件。
-
使用struct模块解压mp3文件的元数据和数据,然后校验数据
-
ID3 标签是文件的(部分)内容。您将需要处理文件内容并仅将您感兴趣的字节提供给 md5 函数。
标签: python metadata md5 checksum