ホームページ > バックエンド開発 > PHPチュートリアル > ギガバイトサイズのファイルをメモリ不足にせずに一行ずつ処理するにはどうすればよいでしょうか?

ギガバイトサイズのファイルをメモリ不足にせずに一行ずつ処理するにはどうすればよいでしょうか?

Linda Hamilton
リリース: 2024-12-21 09:27:11
オリジナル
289 人が閲覧しました

How to Process Gigabyte-Sized Files Line by Line Without Running Out of Memory?

メモリを過負荷にせずに大容量のファイルを 1 行ずつ読み取る方法

特にファイル サイズがシステムのメモリを超える場合、長いファイルを 1 行ずつ読み取るのは困難になることがあります。容量。このようなシナリオでは、標準的な方法を使用してファイル全体をメモリにロードしようとすると、メモリ不足エラーが発生することがよくあります。

次のコード スニペットを考慮してください。

with open('inputfile.txt', 'r') as f:
    for line in f:
        # Process the line
ログイン後にコピー

このコードをファイルが大きい場合、ファイル全体がメモリにロードされるため、ファイルがギガバイト範囲にある場合に問題が発生する可能性があります。

この問題を回避するには、次の使用を検討してください。 fgets() 関数。ファイル全体をメモリにロードせずに、ファイルを 1 行ずつ読み取ることができます。

with open('inputfile.txt', 'r') as f:
    while True:
        line = fgets(f)
        if not line: break
        # Process the line
ログイン後にコピー

このアプローチでは、ファイルを 1 行ずつ読み取り、各行が処理されるとメモリが解放されます。メモリ不足エラーを防ぎます。

以上がギガバイトサイズのファイルをメモリ不足にせずに一行ずつ処理するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート