Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menggantikan Baris dengan Cekap dalam Fail Teks Menggunakan Python?

Bagaimanakah Saya Boleh Menggantikan Baris dengan Cekap dalam Fail Teks Menggunakan Python?

Mary-Kate Olsen
Lepaskan: 2024-12-20 09:00:18
asal
691 orang telah melayarinya

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

Menggantikan Baris dalam Fail Teks Dengan Cekap

Untuk menggantikan baris tertentu dalam fail teks dalam Python, pertimbangkan penggunaan modul input fail. Kaedah ini mengelakkan memuatkan keseluruhan fail ke dalam memori, menjadikannya cekap untuk fail besar.

Menggunakan input fail

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='')
Salin selepas log masuk

Dengan kod ini, fail asal dinamakan semula kepada sandaran dan standard output diarahkan untuk menulis ke dalam fail asal dalam gelung. Sebarang pernyataan cetakan di dalam gelung mengubah suai kandungan fail secara langsung.

Manipulasi Fail Eksplisit

Untuk kebolehbacaan, pertimbangkan pilihan eksplisit ini:

Pilihan 1 (Untuk Fail Kecil ):

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)
Salin selepas log masuk

Pilihan 2 (Untuk Besar Fail):

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")
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Baris dengan Cekap dalam Fail Teks Menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan