ConfigParser读取大写字母,并使其成为小写字母
我发现了一个有趣的观察。 我写了一个configuration文件读取程序,
import ConfigParser class ConfReader(object): ConfMap = dict() def __init__(self): self.config = ConfigParser.ConfigParser() self.config.read('./Config.ini') self.__loadConfigMap() def __loadConfigMap(self): for sec in self.config.sections(): for key,value in self.config.items(sec): print 'key = ', key, 'Value = ', value keyDict = str(sec) + '_' + str(key) print 'keyDict = ' + keyDict self.ConfMap[keyDict] = value def getValue(self, key): value = '' try: print ' Key = ', key value = self.ConfMap[key] except KeyError as KE: print 'Key', KE , ' didn\'t found in configuration.' return value class MyConfReader(object): objConfReader = ConfReader() def main(): print MyConfReader().objConfReader.getValue('DB2.poolsize') print MyConfReader().objConfReader.getValue('DB_NAME') if __name__=='__main__': main()
而我的Config.ini文件看起来像,
[DB] HOST_NAME=localhost NAME=temp USER_NAME=postgres PASSWORD=mandy
__loadConfigMap()工作得很好。 但是,在阅读关键和价值观的同时,使关键字成为小写字母。 我不明白原因。 任何人都可以解释为什么是这样吗?
ConfigParser.ConfigParser()
是ConfigParser.ConfigParser()
的一个子类,logging了这种行为:
所有选项名称都通过
optionxform()
方法传递。 它的默认实现将选项名称转换为小写。
那是因为这个模块分析了Windows INI文件,这些文件是大小写不敏感的。
您可以通过replaceRawConfigParser.optionxform()
函数来禁用此行为:
self.config = ConfigParser.ConfigParser() self.config.optionxform = str
str
不变地通过选项。
- ImportError:无法导入名称X.
- python的time.sleep()有多准确?
- 如何获得给定时区的“午夜”的UTC时间?
- Windows上的TensorFlow版本1.0.0-rc2:“OpKernel('op:”BestSplits“device_type:”CPU“')for unknown op:BestSplits”with test code
- 我如何让IntelliJ识别普通的Python模块?
- 检查平面列表中的重复项
- 在Django QuerySet上计数vs len
- 以便携式数据格式保存/加载scipy sparse csr_matrix
- 如果函数A只被函数B需要,那么A应该在B中定义?