Python3讀寫ini配置檔案的示例

2022-10-04 13:30:26 字數 3765 閱讀 4942

配置檔案的主要功能就是儲存一批變數和變數值,在ini檔案中使用[章(section)]對變數進行了分組,基本格式如下。

# filename: config.ini

[user]

name=admin

password=123456

is_admin=true

[mysql]

host=10.10.10.10

port=3306

db=apitest

user=root

password=123456

[log]

file=run.log

level=info

以上檔案中,有3個section段,分別user、mysql和log。

使用配置檔案的好處在於,不用修改**檔案就可以更改使用的使用者、資料庫以及日誌的配置,避免修改**帶來新的bug,或需要重新打包(如j**a專案中)。

ini檔案中使用#或者;新增注釋,最好獨佔一行,不能寫在變數後面

讀取讀取ini配置檔案需要使用python3自帶的configparser庫,使用示例如下

from configparser import con程式設計客棧figparser # python2中是from configparser import configparser

conf = configparser() # 需要例項化乙個configparser物件

conf.read('config.ini') # 需要新增上config.ini的路徑,不需要open開啟,直接給檔案路徑就讀取,也可以指定encoding='utf-8'

print(conf['user']['name']) # 讀取user段的name變數的值,字串格式

conf物件每個section段的資料類似於乙個字典,可以使用['變數名']或者.get('變數名')獲取對應的值,獲取到的是字串格式。

其他常用的讀取方法如下:

如果想遍歷乙個section所有的變數和值,可以像遍歷字典意義操作,示例如下。

for key, value in conf['mysql'].items():

print(key, value)

注意:ini檔案中的變數名是大小寫不敏感的,而section名是大小寫敏感的。

公共變數

假如我們每個section變數組都有一批相同的重複變數,如:

[dev]

# 開發環境

# 測試環境

user=admin

password=123456

base_url=

[prod]

# 生產環境

user=admin

password=123456

base_url=

對應這種,我們可以設定[default]段公用變數,公用變數會自動新增到每乙個段中,修改後如下。

[default]

user=admin

password=123456

[dev]

# 開發環境

# 測試環境

base_url=

[prod]

# 生產環境

base_url=

在python檔案中使用conf['test']['user']同樣能獲取到變數的值。

引數化在ini檔案中我們還可以使用%(變數名)s的佔位符進行引數化,這種特性被稱為interpolation(插值)。

比如乙個介面,不同的引數對應不同的場景,示例如下。

[default]

url = %(base_url)s/get?a=%(a)s&b=%(b)s

base_url=

[dev]

# 開發環境

# 生成環境-場景1

a=1b=2

[prod-case2]

# 生成環境-場景2

a=kevin

b=ma程式設計客棧le

上例中,我們在[default]段設定了乙個引數化的公用變數url,其中埋設了三個佔位符,%(base_url)s、%(a)s、和%(b)s。

並且我們設定了base_url變數的預設值為。

當下面的section中沒有覆蓋該變數時,如prod-case1和prod-case2中,是用base_url的預設值。

注意:每個section段中,加上預設變數base_url,必須提供所有引數化變數的值,比如此例中每個段最少必須設定a和b的值,否則會報錯。

在python指令碼中列印conf['prod-case2']['url'],可以得到組裝後的url。

/get?a=kevin&b=male

修改儲存

conf物件常用的修改如下:

動態組裝conf檔案,示例如下。

from configparser import configparser

from configparser import configparser

conf = configparser()

# conf.read('httpbin.ini', encoding='utf-8') # 如果新建的話就不需要read,如果修改則需要使用read開啟

conf.set('default', 'url', '%(base_url)s/get?a=%(a)s&b=%(b)s') # 可以設定default段的值

conf.set('default', 'base_url', '') # 可以設定default段的值

conf.set('dev', 'a', '1') # 值必須是字串

conf.set('dev', 'b', '2')

conf['prod-case1'] = # 直接使用字典新增多個變數

conf['prod-case2'] =

print(conf.get('dev', 'url'))

print(conf.get('prod-case1', 'url'))

print(conf.get('prod-case2', 'url'))

# 儲存csv

執行列印結果如下:

生成的檔案內www.cppcns.com容如下。

python3讀寫ini配置檔案

ini 檔案是initialization file的縮寫,即初始化檔案 1 是windows的系統配置檔案所採用的儲存格式,統管windows的各項配置,一般使用者就用windows提供的各項圖形化管理介面就可實現相同的配置了。下面是一段正常讀寫ini檔案實現方法 usr bin env pyth...

如何使用Python3讀寫INI配置檔案

ini是我們常見到的配置檔案格式之一。ini是微軟windows作業系統中的副檔名 也常用在其他系統 ini是英文 初始化 initial 的縮寫。正如該術語所表示的,ini檔案被用來對作業系統或特定程式初始化或進行引數設定。通過它,可以將經常需要改變的引數儲存起來 而且還可讀 使程式更加的靈活。我...

如何使用Python3讀寫INI配置檔案

ini是我們常見到的配置檔案格式之一。ini是微軟windows作業系統中的副檔名 也常用在其他系統 ini是英文 初始化 initial 的縮寫。正如該術語所表示的,ini檔案被用來對作業系統或特定程式初始化或進行引數設定。通過它,可以將經常需要改變的引數儲存起來 而且還可讀 使程式更加的靈活。我...