大きなテキスト ファイルを 1 行ずつ効率的に読み取る: メモリを意識したアプローチ
当面のタスクには、次のサイズを超える大きなテキスト ファイルの処理が含まれます。コンテンツ全体を一度にロードすることで、メモリ リソースに負担をかけずに 5 GB を保存できます。これを実現するには、メモリを過剰に使用せずに行ごとに読み取ることができる代替アプローチを採用できます。
解決策: 行ごとのファイル読み取り
メモリ内に大きなリストを作成する readlines() 関数を使用する代わりに、for ループを使用してファイル オブジェクトを反復処理できます。このアプローチにより、ファイル全体のメモリ内表現の作成が回避され、大量のメモリを消費せずにファイルを処理できるようになります。
コンテキスト マネージャーを使用した実装
効率的にリソース管理には、open() でコンテキスト マネージャーを使用することをお勧めします。ファイル オブジェクトを with ステートメント内でラップすることにより、処理中に例外が発生した場合でも、読み取り後にファイルが正しく閉じられるようになります。
with open("log.txt") as infile: for line in infile: print(line)
このコード スニペットは、「log.txt」ファイルを開きます。コンテキストマネージャーを使用します。その後、for ループはファイルを 1 行ずつ繰り返し、各行に対して、コンソールへの出力などの必要な操作を実行します。
このアプローチの利点:
以上がメモリ制限を超えずに大きなテキスト ファイルを 1 行ずつ効率的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。