2014-01-24 60 views
2

比方說,我有以下行一個test.ini文件:蟒蛇配置解析器選擇名稱和值分隔符

[A] 
name1 [0,1]=0 
name2 a:b:c/A:B:C [0,1]=1 

當我分析它是這樣的:

A = ConfigParser.ConfigParser() 
with codecs.open('test.ini', 'r') as f: 
    A.optionxform = str 
    A.readfp(f) 

for section_name in A.sections(): 
    print 'Section:', section_name 
    print 'Options:', A.options(section_name) 
    for name, value in A.items(section_name): 
     print 'name-value pair:' 
     print '%s' % (name) 
     print '%s' % (value) 

我得到以下輸出:

Section: A 
Options: ['name1 [0,1]', 'name2 a'] 
name-value pair: 
name1 [0,1] 
0 
name-value pair: 
name2 a 
b:c/A:B:C [0,1]=1 

但是,這不是我想要的, 我希望它是這樣的:

Section: A 
Options: ['name1 [0,1]', 'name2 a:b:c/A:B:C [0,1]'] 
name-value pair: 
name1 [0,1] 
0 
name-value pair: 
name2 a:b:c/A:B:C [0,1] 
1 

有沒有辦法以某種方式選擇名稱和值之間的分隔符 ,以便它只能是「=」號。

而且如果一行中只有一個「=」, 那個分隔符是最後一個?

謝謝!

+0

好吧,我發現了,因爲我使用Python 2.7,我需要更新configparser模塊用來爲較新的一個HTTPS://pypi.python。組織/ PyPI中/ configparser。現在應該有一個自定義鍵(名稱)和值分隔符的選項... – Krcevina

回答

2

問題通過跳過到Python 3.3和解決:A = configparser.ConfigParser(delimiters=('='))