Carian dan Penggantian Di Tempat dalam Fail Teks
Mencari dan menggantikan kandungan dalam fail teks adalah tugas biasa, terutamanya apabila berurusan dengan set data yang besar. Dalam artikel ini, kami akan meneroka pendekatan terbaik untuk melaksanakan operasi ini dalam Python, memfokuskan pada mengekalkan fail asal di tempatnya.
Batasan Pemprosesan Dalam Memori
Walaupun tergoda untuk memuatkan keseluruhan fail ke dalam ingatan dan melakukan penggantian, ini boleh menjadi tidak cekap, terutamanya untuk fail besar. Selain itu, penulisan kembali ke fail berikutnya adalah menyusahkan.
Modul Fileinput
Modul input fail menyediakan penyelesaian yang mudah untuk pemprosesan di tempat. Dengan menggunakan modul ini, anda boleh mengakses fail asal dalam mod baca sahaja sambil mengubah hala output ke fail yang sama. Ini membolehkan anda mengubah suai baris dan menulisnya kembali dengan lancar.
Pelaksanaan Kod Menggunakan Fileinput
import fileinput file_path = "input.txt" with fileinput.input(file_path, inplace=True) as f: for line in f: if 'foo' in line: new_line = line.replace('foo', 'bar') print(new_line)
Dalam kod ini, kami membuka fail menggunakan fileinput.input( ), yang mengubah hala output ke fail yang sama. Gelung for berulang pada kandungan fail, mencari baris yang mengandungi 'foo'. Apabila menemui padanan, ia menggantikan 'foo' dengan 'bar' dan mencetak baris yang diubah suai.
Pendekatan Alternatif
Untuk fail yang lebih besar, kaedah input fail mungkin tidak sesuai kerana keperluan ingatannya. Dalam kes sedemikian, pertimbangkan alternatif berikut:
Kesimpulan
Memilih pendekatan yang sesuai bergantung pada saiz fail dan keperluan khusus bagi permohonan anda. Dengan menggunakan modul input fail atau kaedah alternatif, anda boleh mencari dan menggantikan kandungan dalam fail teks dengan cekap sambil mengekalkan fail asal.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melakukan Carian Di Tempat dan Menggantikan dalam Fail Teks dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!