ホームページ >バックエンド開発 >Python チュートリアル >大きなファイルを完全にメモリにロードせずに、Python で効率的に処理するにはどうすればよいですか?

大きなファイルを完全にメモリにロードせずに、Python で効率的に処理するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-16 19:33:14545ブラウズ

How Can I Efficiently Process Large Files in Python Without Loading Them Entirely into Memory?

Python で大きなファイルを読み取るための遅延メソッド: 区分処理

Python で大きなファイルを読み取るのは、特にコンピューターの容量を超える場合には困難になることがあります。利用可能なメモリ。この問題を軽減するために、遅延メソッドは、ファイルを部分的に読み取り、各部分を処理し、結果を個別に保存するという解決策を提供します。

方法 1: 収量ベースのジェネレーターを使用する

遅延メソッドを作成する 1 つの方法は、読み取られたデータのチャンクを生成するジェネレーター関数を使用することです。これにより、ファイル全体をメモリにロードせずにファイルを反復処理できます。

def read_in_chunks(file_object, chunk_size=1024):
    while True:
        data = file_object.read(chunk_size)
        if not data:
            break
        yield data

使用法:

with open('really_big_file.dat') as f:
    for piece in read_in_chunks(f):
        process_data(piece)

方法 2: Iter とヘルパー関数を使用する

もう 1 つのオプションは、iter 関数とヘルパー関数を使用してそれぞれのサイズを定義することです。 chunk.

f = open('really_big_file.dat')
def read1k():
    return f.read(1024)

for piece in iter(read1k, ''):
    process_data(piece)

方法 3: ラインベースの反復を使用する

ファイルがラインベースの場合は、Python の組み込み遅延ファイルを利用できます。

for line in open('really_big_file.dat'):
    process_data(line)

これらの遅延メソッドにより、大きなファイルを効率的に処理できます。一度に必要な部分だけを読み取ることで、メモリ消費を削減し、システムのハングを防ぎます。

以上が大きなファイルを完全にメモリにロードせずに、Python で効率的に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。