Форум сайта python.su
как научить конфиг парсер получать массивы
т.е
config.ini
last = localhost
last = nonlocalhost
config = ConfigParser.ConfigParser()
config.read('config.ini')
print(config.get('connect', 'last'))
Офлайн
Проще всего - использовать cfgparse
Офлайн
а можно пример кода?
Офлайн
Пройди по ссылке. Там документация есть.
Офлайн
документацию я вижу, но на странице с типами( http://cfgparse.sourceforge.net/cfgparse-option-type.html ) нет типа под мою задачу
Офлайн
cfgparse не знаю, не видел, но я в качестве конфига юзаю либо QSettings (ясно, что не подойдёт), либо yaml. Последний работает с большинством типов данных и приводит их во вполне читаемый вид.
Хотя я и согласен, использовать его там, где подразумевается правка конфига юзером, не стоит.
Офлайн
ZZZДа ладно, вполне себе удобно ;) вон куча проектов конфиги в xml держат и то терпят
Хотя я и согласен, использовать его там, где подразумевается правка конфига юзером, не стоит.
Офлайн
Всё довольно просто сначала преобразуешь список в строку, в качестве разделителя используя служебные символы, затем записываешь строку как параметр, а потом получаешь строку из конфига и преобразуешь её обратно в список.
Офлайн
PooHXML все знают, а вот правила YAML пока сравнительно новые.
Да ладно, вполне себе удобно вон куча проектов конфиги в xml держат и то терпят
RodegastДля чисел да… В вот для списка строк, строки ещё эскейпить надо.
Всё довольно просто сначала преобразуешь список в строку, в качестве разделителя используя служебные символы, затем записываешь строку как параметр, а потом получаешь строку из конфига и преобразуешь её обратно в список.
Офлайн
Эскейпить не обязательно. Просто надо выбирать в качестве разделителя символы (их может быть несколько) которые точно не будут входить в состав строк.
Офлайн