6

.iniで次のファイルを使用したいと思いますConfigParser

[Site1]
192.168.1.0/24
192.168.2.0/24

[Site2]
192.168.3.0/24
192.168.4.0/24

残念ながら、 を呼び出すと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'

私の理解では、予想される形式はkey = value(avalueが必要です) です。

私の質問:

  • ConfigParserそのようなファイルに使用できますか?
  • そうでない場合: 同様のファイルを解析するための良い代替手段はありますか?

構成ファイルを再フォーマットできますが、次のkey = valueような形式でフォーマットを偽造するのではなく、セクションごとに単純な生のエントリのリストを保持したいと考えていますrange1 = 192.168.1.0/24

4

2 に答える 2

11

allow_no_valueパラメータを使用:

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

(ConfigParserの基本クラス)によるとConfigParser.RawConfigParser

が true の場合allow_no_value(デフォルト: False )、値のないオプションが受け入れられます。これらに表示される値はNoneです。

: Python 2.7+、3.2+ で利用可能

于 2013-11-14T07:55:37.053 に答える