2016-08-05 65 views
0

我ConfigParser.ini文件看起來像:分離的.ini文件(configparser)字符串

[Filenames] 
Table1={"logs.table2",92} 
Table2=("logs.table2",91) 
Table3=("audit.table3",34) 
Table4=("audit.table4",85) 

現在例如用於表1,我想獲得「logs.table2」值saperate變量和92作爲行動變量。

import configparser 
filename=config.get('FIlenames','Table1') 

至於結果,我想獲得:

print(filename) -> logs.table2 
print(filenumber) -> 92 

現在輸出只是一個字符串 「」 logs.table2" ,92" 。真的,我不知道如何處理,也許我應該修改我的配置文件? 什麼是最好的方法? 謝謝。

+0

您可以分割值分開使用',A,B = str.split()'。然而,如果你混合了'('和'{'條目,如你的例子所示,一個正則表達式可能更適合。 – ti7

+0

所以,你已經接受了直接在字符串上使用某個函數?是最好的方法嗎?也許我可以以不同的方式寫我的configini.file,以便更容易獲得該值? – bazyl

+0

@ ti7,好吧然後我將使用分割功能,但如何將逗號分配給其他變量的值? – bazyl

回答

1

解析.ini文件正在獲取字符串。

[文件名]

表1 = logs.table2,92

表2 = logs.table2,91

表3 = audit.table3,34

表4 =審計。表4,85

table是一個字符串,所以你可以將其內容拆分成逗號分隔值

import configparser 
config = configparser.ConfigParser() 
config.read('config.ini') 
table=config.get('Filenames','Table1') 
list_table = table.split(',') 
print(list_table[0]) 
print(list_table[1]) 

但名單,最好的做法是把在分開行中的所有name = value對:

[文件名]

TABLE1_FILENAME = logs.table2

TABLE1_FILENUMBER = 92

1

又一種方式:

ConfigParser.ini

[Filenames] 
Table1.filename=logs.table2 
Table1.filenumber=92 
Table2.filename=logs.table2 
Table2.filenumber=91 
Table3.filename=audit.table3 
Table3.filenumber=34 
Table4.filename=audit.table4 
Table4.filenumber=85 

代碼:

from configparser import ConfigParser 
config = ConfigParser() 
config.read('ConfigParser.ini') 
print config.get('Filenames', 'Table1.filename') 
print config.get('Filenames','Table1.filenumber') 
+0

謝謝@tianwei。 – bazyl