Как лучше всего использовать файлы конфигурации синтаксиса python (конечно, в python)?

Мой файл конфигурации на самом деле представляет собой просто большой python dict, но у меня есть много файлов конфигурации для запуска разных экспериментов, и я хочу «импортировать» другой на основе параметра командной строки. Инстинктивно я хочу сделать import ConfigFileName, где ConfigFileName — это строка с именем пакета python в файле конфигурации... но это не работает.

Любые идеи?


person Gabe    schedule 20.05.2010    source источник


Ответы (3)


Используйте встроенную функцию __import__. Но, как и nosklo, я предпочитаю хранить его в более простом формате данных, таком как JSON файла конфигурации INI.

person Wai Yip Tung    schedule 20.05.2010
comment
Хорошо, спасибо. Я думаю, что перейду на JSON, такой же выразительный и менее болезненный. - person Gabe; 26.05.2010
comment
Пожалуйста, объясните кратко, почему JSON? Каков пример чего-то менее болезненного в JSON? JSON не допускает комментариев, верно? что кажется существенным недостатком. - person smci; 18.04.2014
comment
Другим популярным выбором является yaml, который позволяет комментировать. Однако синтаксический анализатор YAML не включен в стандартную библиотеку. - person Wai Yip Tung; 18.04.2014

Переключитесь на json. Он поставляется с python и в целом обеспечивает лучший формат для файлов конфигурации.

person nosklo    schedule 20.05.2010

Вы можете рассмотреть ConfigParser, также включенный в python. Он предлагает простые разделенные элементы имени/значения, настройки по умолчанию и некоторые возможности замены. Если это достаточно гибко для ваших нужд, это будет хорошей альтернативой.

person Pierce    schedule 20.05.2010