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

閱讀時間約 2 分鐘

讀取ini配置文件時如果某個參數不存在,它就會報錯,要怎麼避免呢?

可以使用fallback 參數來指定預設值。

這樣即使配置文件中缺少一些參數,我們的程序也能正常運行並使用預設值。


讓我們來假設一個案例做說明:

先故意將先前範例的port的資料刪掉。

raw-image

程式範例

先前我們使用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 返回相應的值,而不會拋出異常。

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

52會員
112內容數
Python程式設計師,不是在學習就是在學習的路上
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
創作者要怎麼好好休息 + 避免工作過量?《黑貓創作報#4》午安,最近累不累? 這篇不是虛假的關心。而是《黑貓創作報》發行以來可能最重要的一篇。 是的,我們這篇講怎麼補充能量,也就是怎麼休息。
Thumbnail
avatar
黑貓老師
2024-06-29
【Python 軍火庫🧨 - websockets】傳送/接收音檔並轉換成numpy(基礎篇) 關於Websockets的篇章, 有興趣的朋友歡迎參考: 【Python 軍火庫 - websockets】雙向溝通的渠道 【Python 軍火庫 - websockets】用json來溝通吧! 而這一篇章的主題主要是來分享如何透過websockets傳遞音檔並進行解碼, 我們都知道聲
Thumbnail
avatar
阿Han
2024-02-12
Python 程式札記 : 隨機數 randomPython 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
Thumbnail
avatar
梧笙
2024-01-15
[Python] Dictionary字典 - 基礎操作Dictionary(字典) : 是一個可以用來存放不同資料(不同型態)的容器(集合) 每一個元素都是以{鍵(Key):值(Value)}所構成,字典中每個項目都是用","隔開
Thumbnail
avatar
Youna
2023-11-28
Python 程式札記:基礎爬蟲 簡單獲取網頁數據在如今的資訊時代,如何有效的獲取並處理數據,成為了許多專業人士和企業的重要需求,爬蟲技術,作為獲取網絡數據的重要工具,其重要性不言而喻,而這篇文章將分享Python爬蟲的基礎,讓你能獲取想要的網頁數據。
Thumbnail
avatar
梧笙
2023-11-20
Python 詩編 #20: 數學的奇蹟Python 詩編 #20: 數學的奇蹟
Thumbnail
avatar
KH Huang
2023-09-09
[Python] 爬取台積電股價在這篇教學中,我們將使用 Python 的 requests 和 BeautifulSoup 套件,來爬取台積電股價的最新交易日收盤價。
avatar
Pochi
2023-06-25
python 基礎Python 基本語法 python 語法的後綴名是以.py 結尾 python 執行方式 使用交互介面執行 使用 python test.py 命令執行 使用./test.py 執行 python 標示符 以單下劃線開頭的屬性,表示是類的私有屬性(包括方法,變量)。如:_foo表示不能直接訪問的類
Thumbnail
avatar
wang alan
2023-04-18
Python 基礎詳細原碼: https://reurl.cc/ex8lZm hello world Variable (變數) 輸入 input() 四則運算 列表 list (陣列) 集合 字典(Dictionary) 給值 try 檢驗 取所有值 判斷式 If else 迴圈 Switch //字典方式 CSV
avatar
吳佳鑫
2022-11-10
在 Windows 建置以 Visual Studio 為基礎的 Python / Node.js 開發環境「VSCode 是世上最棒的 IDE 了吧」這時有人跳出來表示不服,定睛一看原來是那陳年的大哥 Visual Studio,他說道:「用 Windows 做開發的人一定要裝 Visual Studio 這樣專業的 IDE,不要裝其他次等的文字編輯器,才可以有效提升專業度。」
Thumbnail
avatar
Leon
2022-03-29
python+筆電相機 – 拍照儲存照片用python寫出應用筆電相機儲存照片。
Thumbnail
avatar
薰魚
2021-09-03