用 Python 一鍵搜尋並取代 .ini 設定檔中的字串

更新於 發佈於 閱讀時間約 7 分鐘

在軟體開發或部署過程中,我們經常需要對多個 .ini 設定檔進行批次修改,例如將某個舊的參數名稱或路徑名稱,替換成新的命名。

這就像記事本的「全部取代」功能,但你不需要一個個打開檔案慢慢點——你可以用 Python 自動完成這些事!

本文將介紹一個 Python 函式:search_and_replace_in_ini,它可以幫你:

✅ 遞迴搜尋某個資料夾內所有 .ini 檔案

✅ 找出含有指定字串的檔案

✅ 將該字串替換為新字串

✅ 自動儲存修改結果



🧠 程式邏輯說明

這段程式的核心流程如下:

python
複製編輯def search_and_replace_in_ini(self, folder_path, old_name, new_name):
for root, _, files in os.walk(folder_path): # 遞迴掃描資料夾
for file in files:
if file.endswith('.ini'): # 只針對 .ini 檔案
if file in self.modify_ini_path_name: # 限定特定檔案名稱才修改
file_path = os.path.join(root, file) # 組成完整檔案路徑
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines() # 一行一行讀進來

modified = False
for i, line in enumerate(lines):
if old_name in line: # 找到要換的字串
lines[i] = line.replace(old_name, new_name) # 取代
modified = True

if modified: # 有修改才重新寫入
with open(file_path, 'w', encoding='utf-8') as f:
f.writelines(lines)

🧰 使用方式教學

✅ 1. 參數介紹

folder_path要搜尋的資料夾路徑(可遞迴)

old_name要被取代的舊字串

new_name要替換的新字串

self.modify_ini_path_name

限定要修改的 .ini 檔案清單(此屬性需先設定)


🛠️ 2. 初始化與使用範例

你可以這樣建一個簡單的類別來使用它:

import os

class IniEditor:
def __init__(self):
# 這裡你可以放要處理的特定 ini 檔名
self.modify_ini_path_name = ['config.ini', 'app.ini']

def search_and_replace_in_ini(self, folder_path, old_name, new_name):
for root, _, files in os.walk(folder_path):
for file in files:
if file.endswith('.ini'):
if file in self.modify_ini_path_name:
file_path = os.path.join(root, file)
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()

modified = False
for i, line in enumerate(lines):
if old_name in line:
lines[i] = line.replace(old_name, new_name)
modified = True
if modified:
with open(file_path, 'w', encoding='utf-8') as f:
f.writelines(lines)

# 範例執行
editor = IniEditor()
editor.search_and_replace_in_ini('./configs', 'OLD_NAME', 'NEW_NAME')

🧪 實用範例情境

  1. 🚀 部署環境轉換:將設定檔中的 localhost 改為 192.168.1.100
  2. 🗂 批次更新版本:把 .dll=lib_v1.2 改成 .dll=lib_v1.3
  3. 🔐 憑證路徑替換:換掉 .pem.crt 的相對路徑為正式環境路徑

🛡️ 注意事項

  • self.modify_ini_path_name 是一個用來白名單過濾的機制,只有列在裡面的檔案才會被修改
  • 建議在實際執行前先備份 .ini 檔,避免誤刪或錯改
  • 如果你希望修改所有 .ini,可以將判斷 if file in self.modify_ini_path_name: 拿掉

🏁 結語

這段程式碼簡單又實用,特別適合有大量設定檔需要修改的場景。

如果你正在開發企業系統、維護大型專案,或只是單純不想手動一個一個開檔案改內容,這就是你的好幫手!

有興趣的話也可以進一步加上 GUI 或 log 記錄功能,打造一個完整的「設定檔編輯工具」。

留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
141會員
253內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
螃蟹_crab的沙龍的其他內容
2025/04/11
🐶 什麼是 Watchdog? Watchdog 是一個 Python 套件,用來即時監控檔案系統的變化。它可以在資料夾內有「新增」、「修改」、「刪除」等事件時,立即觸發事件處理函式,不需要手動輪詢 (polling),效率高又省資源。 ✅ Watchdog 的特點: 採用 OS 層級的檔案
2025/04/11
🐶 什麼是 Watchdog? Watchdog 是一個 Python 套件,用來即時監控檔案系統的變化。它可以在資料夾內有「新增」、「修改」、「刪除」等事件時,立即觸發事件處理函式,不需要手動輪詢 (polling),效率高又省資源。 ✅ Watchdog 的特點: 採用 OS 層級的檔案
2025/01/12
用 PyInstaller 打包一個簡單計算機應用 (GUI 使用 PyQt5) 本教學將帶您使用 PyQt5 建立一個簡單的計算機應用,並透過 PyInstaller 將其打包成執行檔(EXE)。 1. 安裝所需環境 在開始之前,請確保您已安裝以下工具: 必要套件 Python: 建
Thumbnail
2025/01/12
用 PyInstaller 打包一個簡單計算機應用 (GUI 使用 PyQt5) 本教學將帶您使用 PyQt5 建立一個簡單的計算機應用,並透過 PyInstaller 將其打包成執行檔(EXE)。 1. 安裝所需環境 在開始之前,請確保您已安裝以下工具: 必要套件 Python: 建
Thumbnail
2025/01/01
有時候總是會需要將兩個PDF檔或多個來做合併。 在 Python 中,您可以使用 PyPDF2 或 PyPDF4 等庫來合併多個 PDF 文件。 以下是使用 PyPDF2 的範例步驟: 我利用word另存兩個pdf來做示範: 完成合併 1. 安裝 PyPDF2 如果還未安裝,您可以
Thumbnail
2025/01/01
有時候總是會需要將兩個PDF檔或多個來做合併。 在 Python 中,您可以使用 PyPDF2 或 PyPDF4 等庫來合併多個 PDF 文件。 以下是使用 PyPDF2 的範例步驟: 我利用word另存兩個pdf來做示範: 完成合併 1. 安裝 PyPDF2 如果還未安裝,您可以
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
工具功能 (1) 彈性任意查詢檔案,如對來源目錄設定,檔案修改日期 設定,檔名特定字串或副檔名設定後,自動查出明細,並可展開至各階子目錄處理     (2) 依查詢後結果,可產出 LIST ,提供查詢結果之確認,再依此對檔案作複 (3) 可對檔案作移動,複製至別處,刪除處理,使電腦可騰出硬碟空間
Thumbnail
讀取ini配置文件時如果某個參數不存在,它就會報錯,要怎麼避免呢? 可以使用fallback 參數來指定預設值。 這樣即使配置文件中缺少一些參數,我們的程序也能正常運行並使用預設值。 讓我們來假設一個案例做說明: 先故意將先前範例的port的資料刪掉。
Thumbnail
讀取ini配置文件時如果某個參數不存在,它就會報錯,要怎麼避免呢? 可以使用fallback 參數來指定預設值。 這樣即使配置文件中缺少一些參數,我們的程序也能正常運行並使用預設值。 讓我們來假設一個案例做說明: 先故意將先前範例的port的資料刪掉。
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
讓我們從程式開始看起,我們輸入的鍵都是KeY,卻在寫入ini時,都轉換成小寫了。 因為預設情況下,configparser 會將配置文件中的鍵(Key)轉換成小寫形式。也就是說,即使配置文件中鍵的寫法是大寫或混合大小寫,讀取時都會轉換成小寫。 如以下的程式範例 其中的鍵值為KeY1 KeY2
Thumbnail
讓我們從程式開始看起,我們輸入的鍵都是KeY,卻在寫入ini時,都轉換成小寫了。 因為預設情況下,configparser 會將配置文件中的鍵(Key)轉換成小寫形式。也就是說,即使配置文件中鍵的寫法是大寫或混合大小寫,讀取時都會轉換成小寫。 如以下的程式範例 其中的鍵值為KeY1 KeY2
Thumbnail
在Python中,import是一個關鍵字,用於將其他模組或套件中的程式碼引入到當前的程式中以供使用。 這個關鍵字允許你在你的程式中使用其他地方定義的變數、函式和類等。 當你使用import時,Python會搜索指定模組或套件的位置,並將其中的程式碼載入到你的程式中,這樣你就可以在程式中使用它們
Thumbnail
在Python中,import是一個關鍵字,用於將其他模組或套件中的程式碼引入到當前的程式中以供使用。 這個關鍵字允許你在你的程式中使用其他地方定義的變數、函式和類等。 當你使用import時,Python會搜索指定模組或套件的位置,並將其中的程式碼載入到你的程式中,這樣你就可以在程式中使用它們
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News