Python 讀取 ini 設定檔 ConfigParser 用法教學

本篇介紹如何在 python 讀取 ini 設定檔,並解析 .ini 檔裡的每個屬性欄位的數值,在開始前我們先來認識一下什麼是ini檔案格式。

什麼是 INI 檔案格式

INI 檔案格式是應用在電腦軟體上的設定檔,是以一種以文字所組成的特殊結構語法,其內容可能有多個section區段,且每個 section 區段都有各自的多個屬性,每個屬性都是 key-value 為一組所構成,
起初 ini 檔被廣泛應用在 Windows 作業系統中,這個格式後來變成了一種非正式的標準並且被其他作業系統與應用程式當設定檔儲存使用,另外有些應用程式可能改用.conf.cfg這種副檔名。

簡單的 .ini 設定檔內容如下所示,

config.ini
1
2
3
[http]
host = https://www.google.com
port = 80

Python 讀取 ini 設定檔

以上述的 config.ini 為例,我們要寫一個可以讀取這個 ini 設定檔的 python 程式,必須要能解析 ini 檔的內容結構,而 python 內建已經提供了 configparser 模組替我們完成這件事,所以我們只需學習會使用即可。

在 python 3 使用時需要先 import configparser
在 python 2 使用時需要先 import Configparser
一開始建立完一個 configparser 物件後使用 config.read() 將 ini 檔內容讀取進來,之後再用字典的方式來取得資料,

從 ini 檔讀取進來的格式一律都是字串,所以要讀取數字的話需要將讀取進來的字串轉成數字,例如讀取整數要將讀取的字串用 int() 轉換,

以下以 python 3 作示範,

python3-ini-read.py
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import configparser

config = configparser.ConfigParser()
config.read('config.ini')

host = config['http']['host']
port = int(config['http']['port'])
print(host)
print(port)

結果輸出:

1
2
https://www.google.com
80

configparser 也有提供直接轉成 int 的函式叫 getint() 實際用法如下所示,這樣使用後就直接可以取得 int 整數了,類似的型別還有 getfloat()getboolean() 來轉換 float 與 bool,

1
port = config['http'].getint('port')

下一篇將介紹 Python 如何寫入ini 設定檔

以上就是 Python 讀取 ini 設定檔 ConfigParser 用法教學介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支持一下!

參考
Python 設定檔解析模組 ConfigParser 使用教學 - Office 指南
https://officeguide.cc/configparser-python-configuration-file-parser-tutorial/
使用python讀寫ini配置文檔 | Code . Arts . Travel
http://www.jysblog.com/coding/python/python-%E8%AE%80%E5%AF%ABini%E9%85%8D%E7%BD%AE%E6%96%87%E6%AA%94/
How to read a config file using python - Stack Overflow
https://stackoverflow.com/questions/19379120/how-to-read-a-config-file-using-python
python - How to read and write INI file with Python3? - Stack Overflow
https://stackoverflow.com/questions/8884188/how-to-read-and-write-ini-file-with-python3

其它相關文章推薦
如果你想學習 Python 相關技術,可以參考看看下面的文章,
Python 新手入門教學懶人包
Python 寫入 ini 設定檔 ConfigParser 用法教學
Python 讀取 txt 文字檔
Python 讀取 csv 檔案
Python 寫入 csv 檔案
Python str 字串用法與範例
Python list 串列用法與範例
Python set 集合用法與範例
Python dict 字典用法與範例
Python tuple 元組用法與範例
Python 字串分割 split
Python 取代字元或取代字串 replace
Python 讓程式 sleep 延遲暫停時間
Python 產生 random 隨機不重複的數字 list
Python PyAutoGUI 使用教學
Python OpenCV resize 圖片縮放