ホームページ >バックエンド開発 >Python チュートリアル >メモリ制限なしでPythonで大きなファイルのMD5ハッシュを計算する方法?
Python で大きなファイルの MD5 ハッシュを計算する
Python の hashlib モジュールを使用してファイルの MD5 ハッシュを計算するのは、小規模なファイルの場合は簡単です利用可能なメモリを超える大きなファイルの場合は実用的ではありません。この記事では、この課題に対する実用的な解決策を検討します。メモリ制限を回避するには、hashlib にファイル全体ではなくファイルのチャンクへのアクセスを一度に与える必要があります。次の Python 関数は、指定されたサイズのチャンクでファイルを読み取り、部分的な MD5 ハッシュを蓄積します。 block_size パラメータに適切なサイズ (デフォルト: 2^20) を設定することで、RAM 制限を超えたファイル サイズを効果的に管理できます。<code class="python">def md5_for_file(f, block_size=2**20): md5 = hashlib.md5() while True: data = f.read(block_size) if not data: break md5.update(data) return md5.digest()</code>適切な結果を確保するには、「rb」を使用してバイナリ モードでファイルを開きます。 より包括的なアプローチの場合、ヘルパー関数で必要なすべての手順をカプセル化できます。
<code class="python">def generate_file_md5(rootdir, filename, blocksize=2**20): m = hashlib.md5() with open(os.path.join(rootdir, filename), "rb") as f: while True: buf = f.read(blocksize) if not buf: break m.update(buf) return m.hexdigest()</code>jacksum などのツールを使用して結果をクロスチェックすると、計算された MD5 ハッシュの精度が保証されます。 .
以上がメモリ制限なしでPythonで大きなファイルのMD5ハッシュを計算する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。