栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用ConfigParser读取没有节名的文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用ConfigParser读取没有节名的文件

Alex Martelli提供了一种用于

ConfigParser
解析
.properties
文件(显然是无节的配置文件)的解决方案。

例如:

$ cat my.propsfirst: primosecond: secondothird: terzo

即将是一种.config格式,除了它缺少开头部分的名称。然后,很容易伪造节标题:

import ConfigParserclass FakeSecHead(object):    def __init__(self, fp):        self.fp = fp        self.sechead = '[asection]n'    def readline(self):        if self.sechead: try:      return self.sechead finally:      self.sechead = None        else:  return self.fp.readline()

用法:

cp = ConfigParser.SafeConfigParser()cp.readfp(FakeSecHead(open('my.props')))print cp.items('asection')

输出:

[('second', 'secondo'), ('third', 'terzo'), ('first', 'primo')]

他的解决方案是一个类似文件的包装器,该包装器将自动插入一个虚拟节标题来满足

ConfigParser
的要求。

我认为MestreLion的“ read_string”注释很好,很简单,值得举一个例子。

对于Python 3.2+,您可以实现“虚拟部分”的想法,如下所示:

with open(CONFIG_PATH, 'r') as f:    config_string = '[dummy_section]n' + f.read()config = configparser.ConfigParser()config.read_string(config_string)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637573.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号