Python配置文件生成器
我想用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文件的情况下,我担心两件事。
有很多IP/主机名和相关信息,可能需要人工管理,所以XML格式可能会有点不方便。有什么更方便的结构来管理这些信息呢?(Excel会是一个方便的工具,可以批量修改和查找信息)
如果需要在ini文件中添加一些额外的行,我需要一个高效的方法,只需修改模板文件并将额外信息添加到源文件(可能是Excel文件或其他文件),然后就能快速生成一大堆ini文件。
5 个回答
用xml格式来做配置文件真是太棒了。在任何解释型语言中,最好的选择是使用代码文件,然后直接执行或者导入它。Pickle也不错,但人看不懂。
我不知道有没有开源的配置生成工具。
Python有几个处理xml文件的模块,其中最新的(可能也是最符合Python风格的)是ElementTree。你可以在开发者网站找到更多关于它的文档。
如果可以的话,我建议尽量不要在配置文件中使用xml。用一个简单的文本文件,里面只包含名称和数值的对,处理起来对人来说要简单得多。如果你需要多一两层的结构,ini格式的文件就很合适,而且Python自带了一个解析器来处理它们。
我推荐使用Michael Foord开发的优秀库 ConfigObj。这个库可以读取和写入配置文件,甚至可以处理里面有层级结构的内容。