Cari dan Gantikan Teks
Mencari dan menggantikan teks dalam fail ialah tugas biasa dalam pengaturcaraan. Python menyediakan beberapa cara untuk mencapai ini menggunakan perpustakaan seperti os, sys dan input fail.
Percubaan Asal
Pendekatan biasa melibatkan penggunaan gelung untuk lelaran pada baris fail mengikut baris, menyemak teks carian dan menggantikannya dengan teks gantian. Berikut ialah contoh:
import os import sys 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: print('Match Found') else: print('Match Not Found!!') tempFile.write(line.replace(textToSearch, textToReplace)) tempFile.close() input('\n\n Press Enter to exit...')
Isu dengan Penggantian Di Tempat
Pendekatan ini berfungsi dengan baik untuk penggantian mudah. Walau bagaimanapun, apabila teks gantian lebih panjang atau lebih pendek daripada teks asal, isu boleh timbul. Contohnya, apabila menggantikan 'abcd' dengan 'ram', aksara tambahan kekal pada penghujungnya ("hai ini ram hai ini ram").
Penyelesaian: Baca, Ubah Suai, Tulis
Untuk mengelakkan isu ini, adalah disyorkan untuk membaca keseluruhan fail ke dalam memori, mengubah suainya dan kemudian menulisnya semula ke fail dalam langkah yang berasingan. Pendekatan ini memastikan struktur fail kekal utuh:
# Read in the file with open('file.txt', 'r') as file: filedata = file.read() # Replace the target string filedata = filedata.replace('abcd', 'ram') # Write the file out again with open('file.txt', 'w') as file: file.write(filedata)
Kaedah ini lebih cekap untuk fail besar dan menghalang kehilangan data sekiranya berlaku gangguan semasa proses menulis.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari dan Mengganti Teks dengan Cekap dalam Fail Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!