Python configparser不接受没有值的键

时间:2012-02-28 23:39:07

标签: python python-3.x configparser

所以我正在编写一个从配置文件中读取的脚本,我想准确地使用它如何设计使用配置文件如下所示:http://docs.python.org/release/3.2.1/library/configparser.html

我正在使用Python 3.2.1。完成后,该脚本将使用相同版本的Python在Windows 2008 R2计算机上运行,​​或者假设兼容性,当时是最新版本。

#!/user/bin/env python
import configparser

config = configparser.ConfigParser()
config.read('c:\exclude.ini')
config.sections()

可以正常读取exclude.ini文件 - 除非我有一个没有键的值。想到我可能做错了什么尝试解析这里列出的例子:http://docs.python.org/release/3.2.1/library/configparser.html#supported-ini-file-structure

每次都会抛出以下内容:

File "C:\Python32\lib\configparser.py", line 1081, in _read
    raise e
configparser.ParsingError: Source contains parsing errors: c:\exclude.ini
    [line 20]: 'key_without_value\n'

我很茫然......我实际上是从文档中复制/粘贴我正在使用的精确python版本的示例代码,并且它不能正常工作。我只能假设我错过了一些东西,因为我也找不到任何有类似问题的人。

2 个答案:

答案 0 :(得分:16)

ConfigParser constructor的关键字参数allow_no_value的默认值为False

尝试将其设置为true,我认为它对您有用。

答案 1 :(得分:0)

class RawConfigParser:
def __init__(self, defaults=None, dict_type=_default_dict,
             allow_no_value=False):
    self._dict = dict_type
    self._sections = self._dict()
    self._defaults = self._dict()
    if allow_no_value:
        self._optcre = self.OPTCRE_NV
    else:
        self._optcre = self.OPTCRE
    if defaults:
        for key, value in defaults.items():
            self._defaults[self.optionxform(key)] = value

导入ConfigParser

cf = ConfigParser.ConfigParser(allow_no_value = True)