Python:如何只用键读取配置文件(没有值)

WoJ*_*WoJ 4 python parsing configuration-files

我想用下面的.ini文件ConfigParser.

[Site1]
192.168.1.0/24
192.168.2.0/24

[Site2]
192.168.3.0/24
192.168.4.0/24
Run Code Online (Sandbox Code Playgroud)

不幸的是,调用read()转储以下错误:

import ConfigParser
c = ConfigParser.ConfigParser()
c.read("test.ini")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\ConfigParser.py", line 305, in read
    self._read(fp, filename)
  File "C:\Python27\lib\ConfigParser.py", line 546, in _read
    raise e
ConfigParser.ParsingError: File contains parsing errors: test.ini
        [line  2]: '192.168.1.0/24\n'
        [line  3]: '192.168.2.0/24\n'
        [line  6]: '192.168.3.0/24\n'
        [line  7]: '192.168.4.0/24\n'
Run Code Online (Sandbox Code Playgroud)

我的理解是预期的格式是key = value(a value是必需的).

我的问题:

  • ConfigParser这样的文件可用?
  • 如果没有:是否有一个很好的替代解析类似的文件?

我可以重新格式化配置文件,但是希望每个部分保留一个简单的原始条目列表 - 而不是伪造key = value类似的格式range1 = 192.168.1.0/24

fal*_*tru 8

使用allow_no_value参数:

import ConfigParser
c = ConfigParser.ConfigParser(allow_no_value=True)
c.read("test.ini")
Run Code Online (Sandbox Code Playgroud)

根据ConfigParser.RawConfigParser(ConfigParser的基类):

如果allow_no_value为true(默认值:False),则接受不带值的选项; 为这些提供的值是.

注意:适用于Python 2.7 +,3.2 +