Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mencari dan Mengganti Teks dengan Cekap dalam Fail Menggunakan Python 3?
Cari dan Gantikan Teks dalam Fail dengan Python 3
Dalam Python 3, anda boleh mencari dan menggantikan teks dalam fail menggunakan pelbagai kaedah. Satu pendekatan biasa digambarkan dalam kod yang disediakan.
Analisis Kod
Kod yang anda berikan membaca teks untuk mencari dan menggantikan serta laluan fail daripada pengguna. Ia kemudian membuka fail untuk membaca dan menulis, mencari kemunculan teks carian menggunakan input fail, menggantikannya dengan teks gantian dan menulis kandungan yang diubah suai pada fail.
Isu dengan Mengganti 'abcd ' oleh 'ram'
Isu yang dilaporkan dengan hasil penggantian berlaku kerana rentetan 'abcd' lebih panjang daripada 'ram'. Apabila 'abcd' digantikan dengan 'ram', aksara tambahan pada penghujung teks yang diganti tidak akan dialih keluar, mengakibatkan "aksara sampah" yang anda perhatikan.
Penyelesaian
Untuk menyelesaikan isu ini, anda harus mengambil kira potensi perbezaan panjang antara rentetan carian dan penggantian. Berikut ialah versi kod yang dikemas kini yang sepatutnya berfungsi dengan betul:
import os import fileinput print("Text to search for:") textToSearch = input("> ") print("Text to replace it with:") textToReplace = input("> ") print("File to perform Search-Replace on:") fileToSearch = input("> ") tempFile = open(fileToSearch, 'r+') for line in fileinput.input(fileToSearch): if textToSearch in line: tempFile.write(line.replace(textToSearch, textToReplace)) else: tempFile.write(line) tempFile.close() input('Press Enter to exit...')
Pelaksanaan Kemas Kini
Daripada menggantikan semua kejadian textToSearch dengan textToReplace, kod yang dikemas kini menggunakan baris .replace() dalam gelung, memastikan bahawa hanya kejadian khusus yang ditemui diganti. Pengubahsuaian ini menghapuskan baki aksara sampah.
Penyelesaian Cekap Memori
Kod ini menganggap bahawa fail itu sesuai sepenuhnya dengan memori. Jika fail terlalu besar, pertimbangkan untuk membaca dan menulis pada fail secara berperingkat untuk mengelakkan masalah ingatan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari dan Mengganti Teks dengan Cekap dalam Fail Menggunakan Python 3?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!