0
私はPython 2.7のスクリプトをPython 3.5に移植しました。そのため、2.7では利用できないライブラリを使用できますが、このコードから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"プロジェクトです。あなたがこのPython初心者向けに特別な助けを感じているなら、これを行うより適切な方法を提案(またはリンク)できますか? – Nstr10
@ Nstr10:通常の 'for'ループを使います。 – user2357112