讀取ini配置文件時如果某個參數不存在,它就會報錯,要怎麼避免呢?
可以使用fallback
參數來指定預設值。
這樣即使配置文件中缺少一些參數,我們的程序也能正常運行並使用預設值。
先故意將先前範例的port
的資料刪掉。
先前我們使用server= config['database']['server']
的方式來獲取ini的值,但如果要設定預設值,這方法就不適用了,就要改用get
的方式,這有點像字典獲取值的方法。
import configparser
# 創建 configparser 物件
config = configparser.ConfigParser()
# 讀取配置文件
config.read('F:/python/opencv/import_test/example.ini', encoding='utf-8')
# 獲取 Section1 中的 Key1 和 Key2 的值
server = config.get('database', 'server', fallback='localhost')
port = config.get('database', 'port', fallback='8080')
key = config.get('database', 'key')
print(f"server 的值:{server}")
print(f"port 的值:{port}")
因我們example.ini
並未有port
這個名稱,故輸出預設值8080
,server
是有設定的所以就會印出example.ini
內的資料。
config.get(section, option, fallback=None)
section
: 從哪個部分(section)獲取配置值。option
: 具體配置項的名稱(即鍵名)。fallback
(可選): 如果指定的 section 或 option 不存在時,返回的預設值。如果未提供 fallback 參數,則如果指定的 section 或 option 不存在,則會拋出 NoOptionError
或 NoSectionError
異常。使用這個方法時,configparser
會嘗試獲取指定 section
中指定 option
的值。如果該 section
或 option
不存在,則根據提供的 fallback
返回相應的值,而不會拋出異常。
在處理配置文件時更為靈活,你可以根據需要提供預設值,從而更好地處理可能出現的配置缺失情況。