2024-05-03|閱讀時間 ‧ 約 23 分鐘

[Python基礎]configparser 讀取ini檔使用預設值,避免報錯

讀取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這個名稱,故輸出預設值8080server是有設定的所以就會印出example.ini內的資料。


語法說明

config.get(section, option, fallback=None)
  • section: 從哪個部分(section)獲取配置值。
  • option: 具體配置項的名稱(即鍵名)。
  • fallback(可選): 如果指定的 section option 不存在時,返回的預設值。如果未提供 fallback 參數,則如果指定的 section option 不存在,則會拋出 NoOptionErrorNoSectionError 異常。


使用這個方法時,configparser 會嘗試獲取指定 section 中指定 option 的值。如果該 section option 不存在,則根據提供的 fallback 返回相應的值,而不會拋出異常。

在處理配置文件時更為靈活,你可以根據需要提供預設值,從而更好地處理可能出現的配置缺失情況。

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.