配置檔案的主要功能就是儲存一批變數和變數值,在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檔案被用來對作業系統或特定程式初始化或進行引數設定。通過它,可以將經常需要改變的引數儲存起來 而且還可讀 使程式更加的靈活。我...