需要同時修改多個文本文件?例如,將所有文件的英國式拼寫改為美式拼寫。本文將演示如何使用Python高效地完成此任務。
假設您有五個文本文件,都將“World”錯寫成了“Wolrd”。我們將使用Python腳本來更正所有這些文件中單詞的拼寫。
首先,準備要處理的數據(文本文件)。本教程創建一個名為“hello”的目錄,其中包含多個文件和子目錄,以及名為1.txt、2.txt、3.txt、4.txt和5.txt的文本文件。
儘管我們使用的函數會遍歷目錄中的所有文件,但您可以在代碼中添加條件語句,以僅處理需要修改的文件。
接下來,讀取“hello”目錄的內容。可以使用for-in
循環結合is_file()
方法和startswith()
方法,只讀取和寫入目標文件。
我們以r
模式打開文件,以便讀取文件內容,並在進行必要的更改後寫入文件。
if not item.name.startswith('.') and item.is_file(): with open(item, mode="r+") as file: file_text = file.read()
關鍵步驟是使用正則表達式搜索“Wolrd”。 Python中,使用re.compile()
編譯正則表達式:
將正則表達式模式編譯成正則表達式對象,可以使用其
search()
方法進行匹配。
然後使用sub()
方法將錯誤拼寫替換為正確拼寫:
regex = re.compile('Wolrd') file_text = regex.sub('World', file_text)
最後,將替換後的新文本寫入文件:
file.seek(0) file.write(file_text)
完整的Python腳本如下,它將在每個文件中查找“Wolrd”,並將其替換為“World”:
import os, re with os.scandir('hello') as directory: for item in directory: if not item.name.startswith('.') and item.is_file(): with open(item, mode="r+") as file: file_text = file.read() regex = re.compile('Wolrd') file_text = regex.sub('World', file_text) file.seek(0) file.write(file_text)
如您所見,Python 使用 for
循環輕鬆地對多個文件進行修改。 記住使用正則表達式進行模式匹配非常重要。
更多關於Python循環的信息,請參考Python循環詳解。更多關於正則表達式的資料,請參考Python正則表達式教程。
本文已更新,並包含Monty Shokeen的貢獻。 Monty是一位全棧開發者,他熱愛編寫教程和學習新的JavaScript庫。
以上是如何使用Python更改多個文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!