如何使用 configparser 从配置文件中读取大写字母来保存密钥?
How to preserve keys with capital letters read from a config-file with configparser?
使用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')])
感谢您的帮助!
是的,在 read/write 操作期间,所有键都会自动转换为小写。这个在the Quick Start section of the configparser
docs.
的最后一句里有提到
要没有这种效果,您可以将解析器的 optionxform
(可调用)设置为简单的 return 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')])
使用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')])
感谢您的帮助!
是的,在 read/write 操作期间,所有键都会自动转换为小写。这个在the Quick Start section of the configparser
docs.
要没有这种效果,您可以将解析器的 optionxform
(可调用)设置为简单的 return 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')])