通常情况下,我们会这样解析配置文件:

confiig = ConfigParser.ConfigParser()

config.read('xxx.ini') #这个read表示对某个文件用读打开,

把文件内容读进结构
config.set(section, option, value) #修改 config.write(open('xxx.ini', 'w') #写

可以看到,这个read和write没有任何联系

我在使用ConfigParser过程,发现他对option的大小写不敏感,全部变成小写,

这样如果你在修改之后,重写,会发现本来是大写的option变成小写了。

问题出在

def optionxform(self, optionstr):
return optionstr.lower()

可以自己写一个NewConfigParser,继承ConfigParser,重载函数 optionxform

import configparser
class NewConfigParser(configparser.ConfigParser):
def optionxform(self, optionstr):
return optionstr
def read_config_again():
rootdir = r"./config/xxx.ini"
config=NewConfigParser()
try:
config.read(rootdir, encoding='utf-8')
secs = config.sections()
print("{}".format(secs))
opts = config.options("API")#[1:]
print("{}".format(opts))
kvs = config.items("API")#[1:]
print("{}".format(kvs))
except configparser.DuplicateOptionError as doe:
print("{} 有问题,需要查看 {}".format(doe, rootdir))
pass
if __name__ == '__main__':
read_config_again()

最新文章

  1. a版本冲刺第二天
  2. C#并行编程之数据并行
  3. MyBatis配置文件解析
  4. [Android Pro] Java进阶学习:jar打包详解
  5. Laravel系列 目录结构
  6. UDP 内网穿透 心跳
  7. 夺命雷公狗—angularjs—17—angularjs的静态库
  8. 目标检测的图像特征提取之(三)Haar特征
  9. [LeetCode] Ugly Number (A New Question Added Today)
  10. SQL For Xml
  11. Win10使用小技巧
  12. Dom兼容问题记录汇总
  13. web字体图标的使用
  14. Nape 获取碰撞点加特效
  15. 《http权威指南》读书笔记10
  16. 配置 FATFS 支持长文件名
  17. vuex最简单、最详细的入门文档
  18. js判断 pc 手机 浏览器
  19. maven依赖管理
  20. MySQL中NULL与空字符串

热门文章

  1. 编译openssl和Apache报错checking for SSL_CTX_new... no
  2. php性能提升与检测
  3. JRE vs OpenJDK vs Oracle JDK
  4. python之gunicorn的配置
  5. springboot注入properties配置到javabean
  6. TZOJ:最大连续子序列
  7. LeetCode-37.Sudok Solver
  8. 前端 HTML form表单标签 input标签 type属性 file 上传文件
  9. RestFramework——API设计规范
  10. pip批量安装和卸载package