2017-05-29 9 views
0

私はPython 2.7でモジュールconfigparserを使用しています。オプションのセクションから設定値を読み取る方法は?

私の設定ファイルでは、セクションログをオプションにします。セクションが存在しない場合、私の解析モジュールはデフォルト値を提供します。

私の設定ファイルは次のようになります。

[log] 
filename = C:/tmp/myapp.log 

設定ファイルから存在しなくてもよいセクションから値を読み込む方法はありますか?メソッドitemsは値を読み込みますが、セクションが存在すると仮定し、そうでない場合は例外をスローします。

+0

を使用すると、リンクドキュメントの実施例のセクションを見てください。 – Atsch

+0

'ConfigParser.NoSectionError'を試しましたか? – Gahan

答えて

0

のConfigParserは、すべてのファイルを解析する程度である方法があります。名前が示すように。人々が設定管理のためにそれを使用し始める場合、彼らはあらゆる種類の奇妙な制限に遭遇します。 ConfigParserに折り返しコードを含まないセクションの既定値を設定することはできません。 ConfigParserが言及するデフォルトは、すべてのセクションで共有されています。

私は現在、これらの問題のいくつかを解決するconfigmanagerというライブラリに積極的に取り組んでいます。私は可能な限りすべての利用可能な設定を最初に宣言し、デフォルトを提供しなければならないと信じています。 configmanagerはそれを可能にします。また、永続性のためにconfigparserを使用することもできます。 CONFIGMANAGERとあなたの問題を解決するために

config = Config({ 
    'log': { 
     'filename': 'C:/tmp/myapp.log' 
    } 
}) 
config.configparser.load('config.ini') 
print(config.log.filename.value) 
関連する問題