Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengubah Suai Garis dengan Cekap dalam Fail Di Tempat Tanpa Membuat Fail Sementara?

Bagaimanakah Saya Boleh Mengubah Suai Garis dengan Cekap dalam Fail Di Tempat Tanpa Membuat Fail Sementara?

DDD
DDDasal
2024-11-29 10:35:10998semak imbas

How Can I Efficiently Modify Lines in a File In-Place Without Creating a Temporary File?

Mengubah Suai Baris dalam Fail Di Tempat

Adakah mungkin untuk menghuraikan fail baris demi baris dengan cekap dan mengubah suai baris tertentu tanpa membuat salinan atau sementara fail?

Jawapan:

Ya, adalah mungkin untuk mensimulasikan penyuntingan di tempat menggunakan fail sandaran. Modul input fail menyediakan kefungsian yang diperlukan untuk ini.

Contoh:

Pertimbangkan skrip yang mengalih keluar baris yang tidak memenuhi syarat tertentu daripada fail yang disediakan sebagai argumen baris arahan atau stdin:

import fileinput

for line in fileinput.input(inplace=True, backup='.bak'):
    if some_condition(line):
        print(line)  # The modified line is output to the current file

Penggunaan:

Untuk mengalih keluar baris yang tidak memenuhi beberapa_syarat daripada first_file.txt dan second_file.txt, jalankan arahan berikut:

python grep_some_condition.py first_file.txt second_file.txt

Setelah selesai, first_file.txt dan second_file.txt hanya akan mengandungi baris yang memenuhi some_condition() predikat.

Pendekatan ini memastikan pengubahsuaian di tempat yang cekap dengan mencipta fail sandaran .bak semasa proses penyuntingan, mengekalkan fail asal jika berlaku sebarang ralat.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai Garis dengan Cekap dalam Fail Di Tempat Tanpa Membuat Fail Sementara?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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