Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mencari dan Mengganti Teks dengan Cekap dalam Fail Python?

Bagaimanakah Saya Boleh Mencari dan Mengganti Teks dengan Cekap dalam Fail Python?

Mary-Kate Olsen
Lepaskan: 2024-12-13 02:05:13
asal
251 orang telah melayarinya

How Can I Efficiently Search and Replace Text in a Python File?

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

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

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!

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