저는 2.7에서 사용할 수없는 라이브러리를 사용할 수 있도록 Python 2.7 스크립트 세트를 Python 3.5로 이식했지만이 코드에서 MemoryError를 얻고 있습니다. 이전에 작동했던 :Hashlib MemoryError Python 3.5에서 2.7은 아니지만
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 해시를 얻는 적절한 방법입니다. 이 문제에 관해서는 아무 것도 찾을 수없는 것 같습니다. 도움이된다면, 여기에 위의 코드는 쉘에서 실행되는 역 추적입니다 :
File "<stdin>", line 2, in <module>
File "<stdin>", line 2, in <listcomp>
는 또한 hashlib에 대한 문서와 일치하는
sha2h = hashlib.new('sha256')
와
sha2h = hashlib.sha256()
를 교체하려고는하지만, 이것은 결과에 변화를주지 않았다.
도움이나 의견이 있으면 크게 감사하겠습니다.
고맙습니다! 이 변경으로 인해 문제가 해결되었습니다. – Nstr10
당황 스럽지만, 이것은 내가 원래 작성한 코드입니다. 지나치게 야심 찬 "Hello world"프로젝트입니다. 이 파이썬 초보자에게 도움이된다면, 이것을 할 수있는 더 적절한 방법을 제안 할 수 있습니까? – Nstr10
@ Nstr10 : 일반적인 'for' 루프를 사용하십시오. – user2357112