搜尋和取代文字
搜尋和取代文件中的文字是程式設計中的常見任務。 Python 提供了多種方法來使用 os、sys 和 fileinput 等函式庫來完成此任務。
原始嘗試
常見方法包括使用循環來迭代文件行逐行檢查搜尋文字並將其替換為替換文字。以下是範例:
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...')
就地替換的問題
此方法非常適合簡單替換。但是,當替換文字比原始文字長或短時,可能會出現問題。例如,當將 'abcd' 替換為 'ram' 時,末尾會保留多餘的字元(“hi this is ram hi this is ram”)。
解決方案:讀取、修改、寫入
為了避免這些問題,建議將整個文件讀入內存,修改它,然後在單獨的步驟中將其寫回文件。此方法可確保檔案結構保持完整:
# 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)
此方法對於大檔案更有效,並且可以防止寫入過程中發生中斷時資料遺失。
以上是如何有效率地搜尋和取代Python檔案中的文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!