![bd0986ca5b635d6f6f29258512f08e89.png](https://i-blog.csdnimg.cn/blog_migrate/85eabfce89fce3e8045c9f70266e438f.jpeg)
Configparser 是 Pyhton 标准库中用来解析配置文件的模块,配置文件的格式和Windows的INI文件的格式相似,可以包含一个或多个节(section), 每个节可以有一个或多个参数(键=值)。使用的配置文件的好处就是不用在代码中写死,使得配置与代码解耦,使代码更灵活。
ConfigParser
Python 对于配置文件的读取已经标准化,标准库为Configparser 。
导入ConfigParser
![1983ae6177c69b8fee1a9bd68afc9231.png](https://i-blog.csdnimg.cn/blog_migrate/a157a6c41d93879e1a9bfaf96672fd4f.jpeg)
实例化ConfigParser
![8bf6687e9a539d3489fb83dc95ad3f35.png](https://i-blog.csdnimg.cn/blog_migrate/4a91035324579b4101d3b9539a24f897.jpeg)
加载文件
读入被解析的配置文件
![2597a540f043b92e0e482ca234824ed7.png](https://i-blog.csdnimg.cn/blog_migrate/f9c8fe68b1036dc8cf8aaac673a747fb.jpeg)
配置文件格式
config 配置文件由两部分组成sections与items ,sections 用来区分不同的配置块,items 是sections下面的键值。格式如下
- 键值对可用 = 分隔
- section 的名字是区分大小写的,而key的名字是不区分大小写的
- 键值对中头部和尾部的空白符会被去掉
- 值可以为多行
- 配置文件可以包含注释,注释以#前缀
![dddc3dd878c0c3325f1bb8b0ec3827c7.png](https://i-blog.csdnimg.cn/blog_migrate/a7d49d0a75dfa2df861064d710d176a3.jpeg)
读取config文件数据
config.sections()
得到所有的section,并以列表的形式返回。
![eca714a97c59fffb2b5821b0a730ab0f.png](https://i-blog.csdnimg.cn/blog_migrate/7331c2f89c40a1dece515e1d72f72e0d.jpeg)
config.defaults()
获取一个包含全部实例的字典。
![b212e1ee9ff458ca847aa0cdbc105706.png](https://i-blog.csdnimg.cn/blog_migrate/8462d2ea33933f9d5311a7b987a5d39e.jpeg)
config.has_section(section)
判断section是否在配置文件中存在。
![ca2e761bb8a06774381a730e6c0bf68b.png](https://i-blog.csdnimg.cn/blog_migrate/61c54316ec5fd09cb3af9d32ce75d372.jpeg)
config.has_option(section, option)
判断section中是否存在options。
![780b79b0a9d7682bd27b49fbbf21e37d.png](https://i-blog.csdnimg.cn/blog_migrate/d40d1b7e464a8724bb8b7b1a52ce72b3.jpeg)
config.options(section)
获取section中可用的options 列表。
![96bff846d74e4c4dc57a0e0dd3ddd626.png](https://i-blog.csdnimg.cn/blog_migrate/a9e9a4ba4800723e9a22894907df9e1d.jpeg)
config.items(section)
以列表(name,value)的形式返回section中的每个值。
![b5849369c42256fd25e06e7bc2b5c8b1.png](https://i-blog.csdnimg.cn/blog_migrate/89fe7eba0d8fdad701807f42ad03445c.jpeg)
config[section][option]
获取section中的option的值。
![e1376ab0bba9e5807078a79c3701dd25.png](https://i-blog.csdnimg.cn/blog_migrate/e4a88420dfa20da72f0785276917402f.jpeg)
config.get(section,option)
获取section中option的值,返回为string类型。
![fef98d1726812bbb1019a5493a955e7f.png](https://i-blog.csdnimg.cn/blog_migrate/a9ab4dace3f18e7ce971dcb09c64080a.jpeg)
config.getint(section,option)
获取section中option的值,返回为int类型。
![10b48cbee7c30f85e1b3af44502dda48.png](https://i-blog.csdnimg.cn/blog_migrate/f6ced2f18ffa58b40aeae61c1e24e5a8.jpeg)
config.getboolean(section,option)
获取section中option的值,返回为bool类型。
![87607c295c5117170702eb8b871bdd0f.png](https://i-blog.csdnimg.cn/blog_migrate/1660398e47d0a8f747e2078de0f73d08.jpeg)
config.getfloat(section,option)
获取section中option的值,返回为float类型。
![63654816c18d3112917896a7a45de4cc.png](https://i-blog.csdnimg.cn/blog_migrate/5bacee453782e6502319899e4749658d.jpeg)
新增或修改config文件数据
config.add_section(section)
添加一个新的section
![df3d8aa55fc9286337334210fffc2cd2.png](https://i-blog.csdnimg.cn/blog_migrate/cbe3ef59996cd7c818c8d942a7950232.jpeg)
config.set( section, option, value)
对section中的option进行设置
![34da08f0e9fcca0630f9b28b342a6d5c.png](https://i-blog.csdnimg.cn/blog_migrate/77dc05f3ed245624ff91605326266071.jpeg)
日志如下:
![135ea581bbfe7ded773fdb94c8a1a1b6.png](https://i-blog.csdnimg.cn/blog_migrate/791e73402445c2c247e99799b3fecefd.jpeg)
configsection=value
修改或新增配置
![19b8220c088d537c83884e9d2e120547.png](https://i-blog.csdnimg.cn/blog_migrate/5dca5d975774405cbe4bcd409796ceec.jpeg)
日志如下:
![2f745f62f76e4d48f30ebfc0d2fb1e59.png](https://i-blog.csdnimg.cn/blog_migrate/5c613f9cf81ae60c640abea407946e49.jpeg)