Python で拡張されたファイルの行数を効率的に決定する
大きなファイルの行数をカウントすると、メモリと時間の面で課題が発生します消費。この記事では、この問題に対処するための最適化されたアプローチを提供し、リソース使用量を最小限に抑えながら行数をカウントするためのソリューションを提供します。
メモリ効率の高いアプローチ
従来の方法。提供されたコードは、ファイル内の行を列挙し、順番にカウントします。このアプローチは機能しますが、メモリ内のファイル全体を反復処理する必要があり、大量のメモリ リソースを消費します。
合計による高速アプローチ
より迅速なアプローチには、ジェネレータ式を利用して行数を直接カウントします。次のコード スニペットは、このメソッドを示しています。
num_lines = sum(1 for _ in open('myfile.txt'))
このアプローチは、ファイルを一度に 1 行ずつ反復処理し、検出された行ごとにカウンターをインクリメントすることによって動作します。ジェネレータ式は一度に 1 行しか生成しないため、過剰なメモリ消費がなくなります。
バッファ読み取りによるパフォーマンス ブースター
速度と堅牢性をさらに強化するには、バッファを利用します。読み取りが推奨されます:
with open("myfile.txt", "rbU") as f: num_lines = sum(1 for _ in f)
バッファ読み取りは、データをフェッチすることでファイル アクセスを最適化します。より大きなチャンクに分割され、繰り返されるファイル操作のオーバーヘッドが軽減されます。ただし、「rbU」モードの「U」文字は Python 3.3 以降では廃止されているため、代わりに「rb」を使用する必要があることに注意してください (Python 3.11 で削除されました)。
これらの手法を採用することで、効率的に次のことができます。メモリを節約し、実行時間を最小限に抑えながら、大きなファイルの行数をカウントします。
以上がPython を使用して大きなファイル内の行を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。