【发布时间】:2016-10-12 17:37:44
【问题描述】:
我一直在将一组 Python 2.7 脚本移植到 Python 3.5,以便我可以使用 2.7 中不可用的一些库,但我从之前有效的代码中得到了 MemoryError:
import hashlib, functools
sha2h = hashlib.sha256()
with open('/path/to/any/file', 'rb') as f:
[sha2h.update(chunk) for chunk in iter(functools.partial(f.read, 256), '')]
据我所知,这是获取文件 SHA256 哈希的正确方法。我似乎找不到有关此问题的任何信息。如果有帮助,这是从 shell 运行上述代码时的回溯:
File "<stdin>", line 2, in <module>
File "<stdin>", line 2, in <listcomp>
也试过替换
sha2h = hashlib.sha256()
与
sha2h = hashlib.new('sha256')
与 hashlib 的文档相匹配,但这并没有改变结果。
任何帮助或见解将不胜感激!
【问题讨论】:
标签: python python-3.x hashlib functools