因為專案的需要,要用到python載入配置檔案。本文主要參考了
a) 配置檔案中包含乙個或多個 section, 每個 section 有自己的 option;
b) section 用 [sect_name] 表示,每個option是乙個鍵值對,使用分隔符 = 或 : 隔開;
c) 在 option 分隔符兩端的空格會被忽略掉
d) 配置檔案使用 # 和 ; 注釋
下面給出乙個配置檔案的例子。
[mongodb]
host = amaster
[kafka]
bootstrap_servers = amaster:9092,anode1:9092,anode2:9092
[log]
log_file_name = kuaidaili_spider.log
[zookeeper]
conn_str = amaster:2181,anode1:2181,anode2:2181
測試**:
#-*- coding: utf-8 -*-
import configparser
def func():
cp = configparser.safeconfigparser()
cp.read('kuaidaili_spider.cfg')
print 'mongodb host',cp.get('mongodb','host')
print 'kafka bootstrap_servers',cp.get('kafka','bootstrap_servers')
print 'log file name',cp.get('log','log_file_name')
print 'zookeeper conn string',cp.get('zookeeper','conn_str')
if __name__ == '__main__':
func()
輸出結果:
mongodb host amaster
kafka bootstrap_servers amaster:9092,anode1:9092,anode2:9092
log file name kuaidaili_spider.log
zookeeper conn string amaster:2181,anode1:2181,anode2:2181
下面的內容來自
配置檔案如果包含 unicode 編碼的資料,需要使用 codecs 模組以合適的編碼開啟配置檔案。
[msg]
hello = 你好
config_parser_unicode.py
import configparser
import codecs
cp = configparser.safeconfigparser()
cp.readfp(f)
print cp.get('msg', 'hello')
通常情況下, option 是乙個鍵值對。但是,當 safeconfigparser 的引數 allow_no_value 設定成 true 時,它允許 option 不設定值而只是作為乙個標識。
allow_no_value.conf
# option as flag
[flag]
flag_opt
allow_no_value.py
import configparser
cp = configparser.safeconfigparser(allow_no_value = true)
print cp.get('flag', 'flag_opt'); # none
allow_no_value 預設設定成 false,此時如果配置檔案中存在沒有設定值的 option,在讀取配置檔案時將丟擲異常
configparser.parsingerror。當 allow_no_value 設定成 true 時,如果乙個 option 沒有設定值,has_option 方法會返回 true,get 方法會返回 none。
如果配置檔案中存在乙個名為 default 的 section,那麼其他 section 會擴充套件它的 option 並且可以覆蓋它的 option。
db.conf
[default]
host = 127.0.0.1
port = 3306
[db_root]
user = root
pass = root
[db_huey]
host = 192.168.1.101
user = huey
pass = huey
default_section.py
print cp.get('db_root', 'host') # 127.0.0.1
print cp.get('db_huey', 'host') # 192.168.1.101
safeconfigparser 提供了插值的特性來結合資料。
python配置檔案的使用
將所有的 和配置都變成模組化可配置化,這樣就提高了 的重用性,不再每次都去修改 內部,這個就是我們逐步要做的事情,可配置化 模組 from configparser import configparser configparser是python自帶的模組,用法如下 1.建立configparser物...
python中yaml配置檔案模組的使用
和gnu一樣,yaml是乙個遞迴著說 不 的名字。不同的是,gnu對unix說不,yaml說不的物件是xml。yaml不是xml。為什麼不是xml呢?因為 上面5條也就是xml不足的地方。同時,yaml也有xml的下列優點 yaml可以基於流來處理 yaml表達能力強,擴充套件性好。總之,yaml試...
python中配置檔案的使用方法
專案中使用的常量,我們把它收集在乙個檔案中,這就是配置檔案。配置檔案在專案中是非常必要的,它避免了專案中檔案對常量的分散使用,讓常量可以統一修改,避免造成修改不全面的問題。常用的配置檔案字尾是.ini conf py,當然還有使用.json txt的,推薦使用常用的.ini py,配置檔案的名字一般...