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

Python を使用してテキスト ファイル内の行を効率的に置換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-20 09:00:18719ブラウズ

How Can I Efficiently Replace Lines in a Text File Using Python?

テキスト ファイル内の行を効率的に置換する

Python でテキスト ファイル内の特定の行を置換するには、fileinput モジュールの使用を検討してください。この方法では、ファイル全体をメモリにロードする必要がなくなり、大きなファイルの場合に効率的になります。

fileinput を使用する

import fileinput

with fileinput.input("test.txt", inplace=True) as f:
    for line in f:
        if "foo" in line:
            print(line.replace("foo", "bar"), end='')

このコードでは、元のファイルの名前がバックアップに変更され、標準の出力はループ内の元のファイルに書き込まれるようにリダイレクトされます。ループ内の print ステートメントは、ファイルの内容を直接変更します。

明示的なファイル操作

読みやすさを考慮して、次の明示的なオプションを考慮してください。

オプション 1 (小さいファイルの場合) ):

with open("test.txt", "r") as f:
    lines = f.readlines()

with open("test.txt", "w") as f:
    for line in lines:
        if "foo" in line:
            f.write(line.replace("foo", "bar"))
        else:
            f.write(line)

オプション 2 (大きなファイルの場合):

import tempfile

with open("test.txt") as original, tempfile.NamedTemporaryFile(delete=False) as temp:
    for line in original:
        if "foo" in line:
            temp.write(line.replace("foo", "bar").encode())
        else:
            temp.write(line.encode())

temp.flush()
os.replace(temp.name, "test.txt")

以上がPython を使用してテキスト ファイル内の行を効率的に置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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