ホームページ > バックエンド開発 > Python チュートリアル > Python を使用して大きなファイル内の行を効率的にカウントするにはどうすればよいですか?

Python を使用して大きなファイル内の行を効率的にカウントするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-11 12:53:10
オリジナル
201 人が閲覧しました

How Can I Efficiently Count Lines in a Large File Using Python?

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 サイトの他の関連記事を参照してください。

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