2016-09-07 7 views
0

pythonのconfigparserパッケージで設定ファイルを読むとき、すべてのキー名は小文字の文字列です。誰も大文字と大文字の単語を保存する文字列を読む方法を知っていますか?例えばconfigparserで設定ファイルから読み込んだ大文字のキーを保存する方法は?

:任意の助け

$cat config.cfg 
[DEFAULT] 
Key_1 = SomeWord 
KEY_2 = Another Word 

$ python3 
>>> from configparser import ConfigParser 
>>> cf = ConfigParser() 
>>> cf.read('./config.cfg') 
['./config.cfg'] 
>>> print(cf.defaults()) 
OrderedDict([('key_1', 'SomeWord'), ('key_2', 'Another Word')]) 

ありがとう!

+1

さらに詳しい方法で説明すると、より多くの回答があります。 – turkus

+0

重複して申し訳ありません..私の心に来なかったのは "事件"という言葉でした。^。^ – stevosn

答えて

6

はい、読み取り/書き込み操作中は、すべてのキーが自動的に小文字に変換されます。これは最後の文のthe Quick Start section of the configparser docsに記載されています。

あなたは(呼び出し可能)optionxformは、単にoptionを返すのではなく小文字にそれを変換するために、あなたのパーサーを設定することができ、この効果がないために:それらが定義されたよう

>>> from configparser import ConfigParser 
>>> c = ConfigParser() 
>>> c.optionxform = lambda option: option 
>>> c.read('./config.cfg') 
['./config.cfg'] 

キーが保存されています

>>> c.defaults() 
OrderedDict([('Key_1', 'SomeWord'), ('KEY_2', 'Another Word')]) 
、たとえば、あなたが optionxformにそれを設定することができ大文字にすべてのキーたかった場合は、お好みに合わせて、これをカスタマイズすることができます。もちろん、

>>> cf = ConfigParser() 
>>> cf.optionxform = lambda option: option.upper() 
>>> cf.read('./config.cfg') 
['./config.cfg'] 
>>> cf.defaults() 
OrderedDict([('KEY_1', 'SomeWord'), ('KEY_2', 'Another Word')]) 
関連する問題