20

だから私は設定ファイルから読み取るスクリプトを書いています。ここで概説されているようにconfigparserがどのように使用されるように設計されているかを正確に使用したいと思います: http://docs.python.org/release/3.2.1/library/ configparser.html

Python 3.2.1 を使用しています。スクリプトが完了すると、Windows 2008 R2 マシンで同じバージョンの Python を使用するか、互換性がある場合はその時点で最新バージョンを使用して実行されます。

#!/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バージョンのドキュメントからサンプルコードを文字通りコピー/貼り付けていますが、正常に機能していません。同様の問題を抱えている人を実際に見つけることができないため、何かが欠けているとしか思えません。

4

2 に答える 2

31

ConfigParser コンストラクターallow_no_valueには、デフォルト値のキーワード引数がありますFalse

それを true に設定してみてください。うまくいくと思います。

于 2012-02-29T00:07:37.050 に答える
1
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)

于 2016-04-05T10:26:48.763 に答える