首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Python 批量替換文件內容:遍歷目錄修改指定字符串

     編輯:程式設計綜合問答

需求場景

在 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}")

關鍵點說明

  • os.path.join:跨平台安全拼接路徑
  • encoding='utf-8':顯式指定編碼,避免中文亂碼
  • 字典映射:支持多組替換規則,易維護擴展
  • 異常捕獲:單文件失敗不影響整體流程

進階擴展建議

  • 添加文件擴展名過濾(如僅處理 .txt、.py、.xml)
  • 使用 fileinput 模塊實現原地修改備份
  • 引入正則表達式支持複雜模式替換
  • 添加命令行參數解析(argparse)提高通用性

總結

Python 處理文本替換簡潔高效,結合 os.walk 可遞歸處理深層目錄,是自動化運維常用技能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved