Python配置文件生成器

时间:2010-06-16 22:18:50

标签: python xml configuration-files

我想用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 个答案:

答案 0 :(得分:3)

我不知道是否有任何开源配置生成器。

Python有several个xml解析器模块,最新的(也许是大多数pythonic)模块是ElementTree。您可以在developer's site找到其他文档。

如果可能,我建议在配置文件中避免使用xml。一个充满名称/值对的简单平面文件对于人类来说更容易使用。如果你需要一个或两个结构,ini风格的文件应该做得很好,python为它们带来built-in parser

答案 1 :(得分:3)

我建议使用Michael Foord的优秀ConfigObj库。它可以读/写配置文件,即使是嵌套的部分。

答案 2 :(得分:1)

对任何配置文件使用xml都是非常棒的。任何解释语言的最佳选择是使用代码文件并简单地执行或导入它。泡椒也很好,但不是人类可读的。

答案 3 :(得分:1)

我使用了minidom模块。这可能对你有用。

答案 4 :(得分:1)

您需要一些模板引擎,请查看string.Template