documentation
因为python库的杂音有点少。
我一直在尝试改编
this
import hashlib
from functools import partial
def md5sum(filename):
with open(filename, mode='rb') as f:
d = hashlib.md5()
for buf in iter(partial(f.read, 128), b''):
d.update(buf)
return d.hexdigest()
print(md5sum('utils.py'))
根据我在答案中看到的,md5不能同时对整个文件进行操作,所以它需要这个循环。不知道电话上会发生什么
d.update(buf)
然而。
hashlib.md5()
是:
'block_size',
'copy',
'digest',
'digest_size',
'hexdigest',
'name',
'update'
mmh3
有
'hash',
'hash64',
'hash_bytes'
update
或
hexdigest
方法。。
有人知道如何达到类似的效果吗?
here
暗示杂音是一个很好的选择。
更新-
mmh3
这似乎是更好的记录。
其中的公共方法是:
import mmh3
print([x for x in dir(mmh3) if x[0]!='_'])
>>> ['hash', 'hash128', 'hash64', 'hash_bytes', 'hash_from_buffer']
…所以没有“更新”方法。我看了一下
mmh3.hash_from_buffer
但它看起来不包含循环,也不在Python中,不能真正遵循它。这是一个
link to the line
well documented how to do it
. 如果有人发布了一个解决方案,就会进行测试。