Генератор конфигурационных файлов Python - PullRequest
3 голосов
/ 17 июня 2010

Я хочу использовать Python для создания генератора конфигурационных файлов.Моя грубая идея - вводить данные с помощью файлов шаблонов и некоторых файлов XML с реальными настройками.Затем используйте программу для генерации реальных файлов конфигурации.

Пример:

[template file]
server_IP = %serverip%
server_name = %servername%


[XML file]
<serverinfo>
<server ip="x.x.x.x" name="host1" />
<server ip="x.x.x.x" name="host2" />
</serverinfo>

и затем получить выходной файл конфигурации, подобный этому

[server.ini]

[server1]
server_IP = x.x.x.x
server_name = host1

[server2]
server_IP = x.x.x.x
server_name = host2

У меня есть несколько вопросов:

  • Есть ли какая-либо программа-генератор конфигурации с открытым исходным кодом?(что может быть ключевым словом), интересно, можно ли что-нибудь добавить / изменить в дизайне.

  • Есть ли в Python хороший модуль синтаксического анализа XML?

  • Хорошо ли использовать файл XML для сохранения исходных настроек?Я думал об использовании Excel, поскольку он более интуитивно понятен в обслуживании, но сложнее для анализа программы.Не уверен, как люди справляются с этим.

Надеюсь, что сообщество может дать мне несколько советов.Большое спасибо!

РЕДАКТИРОВАТЬ: В сценарии есть десятки этих выходных INI-файлов.Я имею в виду две вещи.

  1. Существуют десятки ip / hostname и связанной с ними информации, которая может потребоваться для управления человеком, поэтому формат XML будет немного неудобным.Что может быть наиболее удобной структурой для управления этой информацией?(Excel был бы удобным инструментом для пакетного изменения и поиска информации)

  2. В случае необходимости добавить дополнительную строку в INI-файлы, мне нужен эффективный способ, просто изменив шаблонфайл и добавьте дополнительную информацию в исходный файл (может быть файл Excel или любой другой), затем можно быстро создать целые пакеты INI-файлов.

Ответы [ 5 ]

3 голосов
/ 17 июня 2010

Я рекомендую использовать отличную библиотеку ConfigObj от Michael Foord. Он может читать / записывать файлы конфигурации, даже с вложенными разделами.

3 голосов
/ 17 июня 2010

Я не знаю, существуют ли какие-либо генераторы конфигурации с открытым исходным кодом.

Python имеет несколько xml-модулей синтаксического анализатора, самый новый (и, возможно, наиболее питонический) из которых ElementTree .Вы можете найти дополнительную документацию для этого на сайте разработчика .

Я рекомендую избегать использования xml в файлах конфигурации, если это возможно.Простой плоский файл, полный пар имя / значение, намного проще для людей.Если вам нужен один или два уровня структуры, файлы в стиле ini должны хорошо работать, и для python имеется встроенный синтаксический анализатор .

1 голос
/ 19 сентября 2012

Вам нужен шаблонизатор, посмотрите на string.Template

1 голос
/ 17 июня 2010

Я использовал модуль minidom . Это, вероятно, будет работать для вас.

1 голос
/ 17 июня 2010

Потрясающе использовать xml для любого файла конфигурации. Лучший выбор на любом интерпретируемом языке - использовать файл кода и просто выполнить или импортировать его. Рассол тоже хорош, но не для человека.

...