python的configparser模塊用于讀寫.ini格式配置文件,適合基礎配置管理。它支持節(section)和鍵值對結構,其中default節可被繼承;使用configparser實例讀取文件,并通過getint()、getboolean()等方法獲取特定類型值;寫入配置需手動打開文件并調用write()方法;此外,支持變量插值、保留大小寫(optionxform=str)及設置fallback避免keyerror,適用于小型項目或腳本工具。
在python中處理配置文件時,configparser是一個非常實用的模塊。它能讀取和寫入.ini格式的配置文件,結構清晰、使用簡單,適合做程序的基礎配置管理。
配置文件基本格式
configparser處理的是類似 .ini 文件的內容,這種文件通常由多個“節(section)”組成,每個節下面包含若干鍵值對:
[DEFAULT] host = localhost port = 5432 [database] user = admin password = secret
上面的例子中,[DEFAULT] 是一個特殊節,它的配置會被其他所有節繼承。比如,如果某個節沒有定義 host,就會去 DEFAULT 中找。
基本用法:讀取配置
要讀取配置文件,首先需要創建一個 ConfigParser 實例,然后調用 read() 方法加載文件:
立即學習“Python免費學習筆記(深入)”;
import configparser config = configparser.ConfigParser() config.read('config.ini') print(config['database']['host']) # 輸出: localhost print(config['database']['user']) # 輸出: admin
需要注意幾點:
- 節名和鍵名是大小寫敏感的(默認情況下)
- 所有值都會被當作字符串返回
- 可以用 getint()、getboolean() 等方法獲取特定類型
例如:
port = config.getint('database', 'port') is_debug = config.getboolean('DEFAULT', 'debug', fallback=False)
寫入或修改配置
除了讀取,configparser 還可以用來生成或修改配置文件:
config = configparser.ConfigParser() config['DEFAULT'] = { 'host': 'localhost', 'port': '5432' } config['database'] = {} config['database']['user'] = 'admin' config['database']['password'] = 'secret' with open('config.ini', 'w') as f: config.write(f)
這樣就生成了一個新的配置文件。注意:
- 添加節的時候要用字典方式賦值或者使用 add_section() 方法
- 寫入文件時必須手動打開并調用 write()
- 不支持注釋保存,原有注釋會被丟棄
一些容易忽略的細節
-
變量插值
configparser 支持變量引用,格式是 ${section:key}:[paths] home = /home/user log_dir = ${home}/logs
在代碼中可以直接讀取 log_dir,會自動替換為完整路徑。
-
區分大小寫問題
默認不區分大小寫,可以通過設置 optionxform=str 來保留原始大小寫:config = configparser.ConfigParser() config.optionxform = str # 保持鍵名大小寫不變
-
fallback 參數
獲取值時推薦使用 get() 并提供 fallback,避免 KeyError:user = config.get('database', 'username', fallback='guest')
基本上就這些。configparser 的功能不算復雜,但很實用,尤其適合小型項目或腳本工具的配置管理。只要注意變量插值、類型轉換和大小寫這幾個點,就能用得很順手。