在 Ubuntu 環境下,需遍歷多個目錄下的所有文件,將內容中的特定字符串(如 "aaa")批量替換為目標字符串(如 "bbb")。
import os
# 目標目錄列表
dir_list = ['./src1', './src2']
# 替換映射字典
replace_map = {
'aaa': 'bbb',
# 可擴展多組替換規則
}
for dir_name in dir_list:
for file_name in os.listdir(dir_name):
file_path = os.path.join(dir_name, file_name)
# 跳過子目錄
if os.path.isdir(file_path):
continue
try:
# 讀取文件內容
with open(file_path, 'r', encoding='utf-8') as fr:
content = fr.read()
# 執行替換
for old_str, new_str in replace_map.items():
content = content.replace(old_str, new_str)
# 寫回文件
with open(file_path, 'w', encoding='utf-8') as fw:
fw.write(content)
print(f"已處理: {file_path}")
except Exception as e:
print(f"處理失敗 {file_path}: {e}")
fileinput 模塊實現原地修改備份argparse)提高通用性Python 處理文本替換簡潔高效,結合 os.walk 可遞歸處理深層目錄,是自動化運維常用技能。