【问题标题】:Python file checksum ignoring metadataPython文件校验和忽略元数据
【发布时间】: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


【解决方案1】:

我已经解决了从https://pypi.python.org/pypi/mp3hash/ 下载 mp3hash 库的问题。

from mp3hash import mp3hash
print mp3hash('file.mp3')

【讨论】:

    猜你喜欢
    • 2018-05-12
    • 1970-01-01
    • 2013-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多