对configparser的一个简单扩展,它允许嵌套的回退配置

allya.nestedconfigparser的Python项目详细描述


默认情况下,configparser只加载“vars”、“section”和“default_section”中的值。此扩展允许使用节拆分器(默认为“.”)来嵌套节,并尝试从“vars”、然后是“section”、然后是其逻辑父级,最后是“default_section”中查找值。

例如,给定以下配置:

[DEFAULT]
alpha=first level

[section]
beta=second level

[section.subsection]
gamma=third level

默认的configparser的行为如下:

>>> settings = configparser.ConfigParser()
>>> settings.read('config.ini')
['config.ini']
>>> settings.get('section.subsection', 'alpha')
first level
>>> settings.get('section.subsection', 'beta')
None
>>> settings.get('section.subsection', 'gamma')
third level

相反,在此扩展中,行为将是:

>>> settings = nestedconfigparser.NestedConfigParser()
>>> settings.read('config.ini')
['config.ini']
>>> settings.get('section.subsection', 'alpha')
first level
>>> settings.get('section.subsection', 'beta')
second level
>>> settings.get('section.subsection', 'gamma')
third level

这个扩展支持理论上无限级别的嵌套。它也不要求每个级别的分段存在于没有附加配置的情况下。

注意:如果在使用“NestEdTrimePalpSer..NestDistCopyPARServer())获取时,此扩展不会引起NoStError错误。这是因为它将尝试回退到更高的部分,并避免在最高的部分没有任何附加配置的可能为空的部分。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
带Maven的Eclipse Java存储库:缺少工件:compile   java如何以编程方式停止RMI服务器并通知所有客户端   java Roboguice抛出ClassNotFoundException:AnnotationDatabaseImpl   java为什么lucene 4.0删除IndexWriter类的两个构造函数?   nls如何避免java项目上不需要的日志消息?   测试无法在Selenium Webdriver(java)中定位iframe   使用XML的java servlet   java如何使用jxl用****屏蔽单元格   java使用SQLite从数据库中选择“没有这样的列”   导入扫描程序后出现java编译错误   插入查询的java空指针异常   使用创建PostgreSQL数据库。Java应用中的sql脚本   java使用jsoup将HTML解析为格式化的明文