簡體   English   中英

使用 Python ConfigParser 的多個配置文件

[英]Multiple configuration files with Python ConfigParser

調用 ConfigParser.read 時,您可以傳遞與配置文件的潛在位置相對應的字符串列表,該函數返回成功讀取的那些文件的列表。

加載具有重疊部分/鍵的多個配置文件時的默認行為是什么? 列表中較晚的文件是否會覆蓋較早文件解析的值? 整個部分是否被覆蓋或只是沖突的鍵?

在開始測試之后,ConfigParser 用每個連續的文件覆蓋鍵,讀取文件的順序由傳遞給 ConfigParser.read 的列表中文件名的順序決定

只是舉個例子來了解更多細節。

我可以創建以下兩個文件: config1.ini

# ** config1.ini **
[shared]
prop_uniue1 = 1
prop_shared = 10

[unique1]
test_unique = 101

config2.ini

# ** config2.ini **
[shared]
prop_uniue2 = 2
prop_shared = 14

[unique2]
test_unique = 102

然后,如果我運行以下命令,我可以看到配置如何更新(輸出在相應的打印語句后顯示為注釋):

import ConfigParser

config = ConfigParser.ConfigParser()
config.read(['config1.ini', 'config2.ini'])


print config.sections() # ['shared', 'unique1', 'unique2']
print config.get("shared", "prop_uniue1")  # 1
print config.get("shared", "prop_shared")  # 14
print config.get("unique1", "test_unique") # 101

print config.get("shared", "prop_uniue2")  # 2
print config.get("unique2", "test_unique") # 102

所以總結一下它會出現:

  • 正如crasic 所說,讀取文件的順序由文件名出現在給定 read 方法的列表中的順序決定,
  • 這些鍵會被后面的文件覆蓋,但這是在較低的選項級別而不是較高的部分級別完成的。 這意味着如果您的選項不會出現在后面的文件中,即使該部分確實出現,那么將使用早期文件中的選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM