ste*_*osn 0 python configparser python-3.x
使用python 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')])
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
是的,在读/写操作期间,所有键都会自动转换为小写.这在configparser文档的"快速入门"部分的最后一句中提到.
要没有这种效果,您可以设置解析器optionxform(可调用)以简单地返回option而不是将其转换为小写:
>>> from configparser import ConfigParser
>>> c = ConfigParser()
>>> c.optionxform = lambda option: option
>>> c.read('./config.cfg')
['./config.cfg']
Run Code Online (Sandbox Code Playgroud)
现在,密钥在定义时保留:
>>> c.defaults()
OrderedDict([('Key_1', 'SomeWord'), ('KEY_2', 'Another Word')])
Run Code Online (Sandbox Code Playgroud)
当然,您可以根据自己的喜好自定义此项,例如,如果您希望所有键都为大写,则可以将其设置为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')])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
851 次 |
| 最近记录: |