Что лучше для создания файла настроек для программ Python, встроенного модуля (ConfigParser) или независимого проекта (ConfigObj)?Что лучше, ConfigObj или ConfigParser?
ответ
До сих пор я нашел ConfigParser достаточным в любое время, когда использовал его. Кроме того, это включенная батарея, а не сторонняя библиотека.
Хотя я должен признать, образцы кода в документации ConfigObj заставляют ConfigParser выглядеть действительно сосать в сравнении. Для скрипта, который сильно манипулирует файлами .ini, я бы предпочел это.
Согласен. Я обнаружил, что функции, которые я отсутствовал в ConfigParser, находятся в ArgParse, который также является включенной батареей с 2,7. Где я имею доступный python 2.7, я переместился в ArgParse. – Hernan
Недавно я переключился с configparser на configobj, и я в восторге от этого.
Для меня большая разница - это validator. Это позволяет мне очень легко/кратко (1) определить тип и допустимые значения для каждой записи и (2) установить значения по умолчанию.
Эти две функции позволяют мне сэкономить много кода и предотвратить многого. Кроме того, нет лишних накладных расходов на использование configobj с точки зрения сложности моего кода, а библиотека довольно мала.
Для записи я нашел лучшее введение в configobj, чтобы быть [этот учебник] (http://www.voidspace.org.uk/python/articles/configobj.shtml) - он немного устарел, но объясняет основные операции и философия лучше, чем документы, имхо. –
В зависимости от вашей версии Python может быть спорным, отвечает ли это на ваш вопрос, но после краткого просмотра ConfigParser и ConfigObj я установил для configparser версию Python 3 ConfigParser. There’s also a backported version on PyPI.
ConfigParser казался мне громоздким, может быть, даже смею сказать, что это неприлично, и с ConfigObj я столкнулся с эзотерической проблемой со списками (я бы предпочел, чтобы их можно было выровнять по вертикали, , и это не помогло, чтобы последняя версия была опубликована более двух лет назад. Однако API-интерфейс configparser выглядел настолько же шикарным, как и у ConfigObj (хотя и не как многофункциональный), и когда мы переходим на Python 3, я, вероятно, могу легко переключиться на встроенную версию.
Кстати, он отлично работает до сих пор.
Кроме того, является ли YAML хорошим? – Apocryphon
«Лучше» зависит от контекста. Простой, сложный? Какие настройки? – detly
Apocryphon: могу предложить вам изменить вопрос на что-то вроде: «Что такое con и pro's ConfigParser, ConfigObj, YAML» –