2011-11-09 46 views
2

我正在使用ConfigParser来处理配置文件越来越大的项目。我打算分割它,但保留一个中心配置文件,指向其他人。使用Python解析分层配置文件结构

我在文档中没有看到这个,但ConfigParser可以处理分层配置文件结构吗?我可以以某种方式自动从一个配置文件指向另一个配置文件吗?

当然,我可以手动或更好地创建一个模块来处理这个使用ConfigParser作为一个低级工具,但我相信我不是第一个解决这个问题的人 - 你知道吗?处理这个不同的包?或者完全不同的方法?

回答

2

您可以使用Python模块作为配置文件,说config.py所以你只需要导入它:

import config 
+0

我已发布[后续问题](http://stackoverflow.com/questions/) 8067651/configparser-vs-import-config) – Jonathan

+1

这只是一个好主意*如果你完全可以信任你的用户*。否则,什么是阻止他们从config.py文件中调用任意函数?诸如'unlink'之类的函数。 – Nathan

1

XML有XInclude的支持。如果在解析XML文件时使用lxml,它将关闭并找到您通过包含的配置文件<xinclude> statements

+0

这正是我正在寻找的功能,但是我发现'XML'非常乏味。也许'json'会更合适。 – Jonathan

+0

我同意XML很繁琐。幸运的是,lxml支持各种功能,使它*少*如此。两个主要的是'xpath'和'ElementMaker'。 xpath让我们使用搜索字符串,就像目录名称一样,在XML树中查找元素。这使得阅读文件*更简单。 ElementMaker简化了XML的创建。创建'E','ElementMaker'的一个实例,你可以简单地创建新的XML元素。例如,创建''作为'node = E.val(100)'。或' yup'作为'E.my_node('yup')'。 – Nathan

+0

'lxml'非常棒,每次我解析XML文件时都会使用它,但是我的用户会经常使用文本编辑器更新配置,并且我正在考虑他们...... – Jonathan