Что лучше, ConfigObj или ConfigParser? - PullRequest
22 голосов
/ 06 августа 2010

Что лучше для создания файла настроек для программ на Python, встроенного модуля ( ConfigParser ) или независимого проекта ( ConfigObj )?

Ответы [ 3 ]

17 голосов
/ 18 декабря 2010

Я недавно переключился с configparser на configobj, и я очень рад, что сделал это.

Для меня большая разница в validator в configobj.Это позволяет мне очень легко / кратко (1) определить тип и допустимые значения для каждой записи, и (2) установить значения по умолчанию.

Эти две функции экономят много кода и предотвращают неправильную работу.Кроме того, на самом деле нет никаких дополнительных затрат на использование configobj с точки зрения сложности моего кода, а библиотека довольно мала.

5 голосов
/ 19 октября 2012

В зависимости от версии Python ответ на ваш вопрос может быть спорным, но после краткого изучения ConfigParser и ConfigObj я остановился на configparser, версии ConfigParser для Python 3. В PyPI также имеется версия с бэкпортом.

ConfigParser показался мне громоздким, может быть, даже - осмелюсь это сказать - не пифоническим, и с ConfigObj я столкнулся с эзотерической проблемой со списками (я предпочел бы иметь возможность выравнивать их по вертикали, поскольку у меня очень длинные) не помогло то, что последняя версия была опубликована более двух лет назад. API configparser, однако, выглядел так же изящно, как и ConfigObj (хотя и не настолько многофункциональный), и когда мы перейдем на Python 3, я, вероятно, смогу легко переключиться на встроенную версию.

Кстати, до сих пор это прекрасно работает.

4 голосов
/ 06 августа 2010

До сих пор я находил ConfigParser достаточным каждый раз, когда использовал его. Кроме того, это включенная батарея, а не сторонняя библиотека.

Хотя я должен признать, что примеры кода в документации ConfigObj делают ConfigParser действительно отстойным в сравнении. Для сценария, который интенсивно манипулирует файлами .ini, я бы предпочел его.

...