2016-08-05 3 views
0

Мой ConfigParser.ini файл выглядит как:разделение строки в ini-файле (ConfigParser)

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

и теперь, например, для Table1, я хотел бы получить «logs.table2» значение в качестве переменной saperate и 92 в качестве переменной saperate.

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

В результате я хотел бы получить:

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

На данный момент выход это просто строка "" logs.table2" , 92" . По правде говоря, я понятия не имею, как с этим справиться, может быть, я должен изменить свой файл конфигурации? Что такое лучший aproach? Спасибо.

+0

Вы можете разделить значения, кроме использования 'а, Ь = str.split()'. Однако, если у вас есть смешанные '(' и '{' записи, как показано в вашем примере, может быть более подходящим регулярное выражение. – ti7

+0

Итак, вы получили возможность использовать какую-то функцию непосредственно в строках? Лучше ли это apruach? напишите мой configini.file по-другому, чтобы легче получить эти значения? – bazyl

+0

@ ti7, Хорошо, тогда я буду использовать функцию split, но как назначить значение после запятой другой переменной? – bazyl

ответ

1

Разборчивые файлы .ini получают строки.

[Имена файлов]

Таблица1 = logs.table2,92

Table2 = 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]) 

Но, лучшая практика, чтобы положить в разделенных строках все пары имя = значение:

[Имена файлов]

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

Смежные вопросы