Python ConfigParser模块的使用示例


Posted in Python onOctober 12, 2020

前言

在做项目的时候一些配置文件都会写在settings配置文件中,今天在研究"州的先生"开源文档写作系统-MrDoc的时候,发现部分配置文件写在config.ini中,并利用configparser进行相关配置文件的读取及修改。

一、ConfigParser模块简介

该模块适用于配置文件的格式与windows ini文件类似,是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。格式如下:

[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes
[bitbucket.org]
User = Atlan
[topsecret.server.com]
Port = 50022
ForwardX11 = no

括号“[ ]”内包含的为section。紧接着section 为类似于key-value 的options 的配置内容。

二、ConfigParser模块使用

1.写入操作

代码如下:

import configparser #引入模块
​
config = configparser.ConfigParser()  #类中一个方法 #实例化一个对象
​
config["DEFAULT"] = {'ServerAliveInterval': '45',
           'Compression': 'yes',
           'CompressionLevel': '9',
           'ForwardX11':'yes'
           } #类似于操作字典的形式
​
config['bitbucket.org'] = {'User':'Atlan'} #类似于操作字典的形式
​
config['topsecret.server.com'] = {'Host Port':'50022','ForwardX11':'no'}
​
with open('example.ini', 'w') as configfile:
​
  config.write(configfile) #将对象写入文件
以上代码做个简单的解释,和字典的操作方式相比,configparser模块的操作方式,无非是在实例化的对象后面,跟一个section,在紧跟着设置section的属性(类似字典的形式)
 
config["DEFAULT"] = {'ServerAliveInterval': '45',
           'Compression': 'yes',
           'CompressionLevel': '9',
           'ForwardX11':'yes'
           } #类似于操作字典的形式
#config后面跟的是一个section的名字,section的段的内容的创建类似于创建字典。类似与字典当然还有别的操作方式啦!
config['bitbucket.org'] = {'User':'Atlan'} #类似于最经典的字典操作方式

2.读取操作

import configparser
config = configparser.ConfigParser()
#---------------------------查找文件内容,基于字典的形式
print(config.sections())    # []
config.read('example.ini',encoding='utf-8')
print(config.sections())    #  ['bitbucket.org', 'topsecret.server.com']
print('bytebong.com' in config) # False
print('bitbucket.org' in config) # True
print('DEFAULT' in config) # True
print(config['bitbucket.org']["user"]) # Atlan
​
print(config['DEFAULT']['Compression']) #yes
print(config['topsecret.server.com']['ForwardX11']) #no
​
print(config['bitbucket.org'])     #<Section: bitbucket.org>
for key in config['bitbucket.org']:   # 注意,有default会默认default的键
  print(key)             #user serveraliveinterval compression compressionlevel forwardx11
​
# 同for循环,找到'bitbucket.org'下所有键 ['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
print(config.options('bitbucket.org')) 
​
print(config.items('bitbucket.org'))  #找到'bitbucket.org'下所有键值对 [('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes'), ('user', 'Atlan')]
​
print(config.get('bitbucket.org','compression')) # yes    get方法Section下的key对应的value
print(config.getboolean('bitbucket.org','compression')) # True

3.修改操作

import configparser
​
config = configparser.ConfigParser()
​
config.read('example.ini',encoding='utf-8') #读文件
​
config.add_section('yuan') #添加section
​
config.remove_section('bitbucket.org') #删除section
config.remove_option('topsecret.server.com',"forwardx11") #删除一个配置项
# 修改某个option的值,如果不存在该option 则会创建
config.set('topsecret.server.com','k1','11111')
config.set('yuan','k2','22222')
#写回文件
config.write(open("example.ini", "w"))
# 写到其他文件
with open('new2.ini','w') as f:
   config.write(f)

以上就是Python ConfigParser模块的使用示例的详细内容,更多关于Python ConfigParser模块的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python 实现 贪吃蛇大作战 代码分享
Sep 07 Python
详解Python之数据序列化(json、pickle、shelve)
Mar 30 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
Mar 19 Python
python中字符串内置函数的用法总结
Sep 13 Python
Python类装饰器实现方法详解
Dec 21 Python
如何使用repr调试python程序
Feb 28 Python
Python3 利用face_recognition实现人脸识别的方法
Mar 13 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
python opencv pytesseract 验证码识别的实现
Aug 28 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
详解Python牛顿插值法
May 11 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 Python
python修改微信和支付宝步数的示例代码
Oct 12 #Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 #Python
Django限制API访问频率常用方法解析
Oct 12 #Python
Python confluent kafka客户端配置kerberos认证流程详解
Oct 12 #Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
Oct 12 #Python
使用Python中tkinter库简单gui界面制作及打包成exe的操作方法(二)
Oct 12 #Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 #Python
You might like
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
PHP实现GIF图片验证码
2015/11/04 PHP
CodeIgniter钩子用法实例详解
2016/01/20 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
Javascript 强制类型转换函数
2009/05/17 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
javascript中全局对象的parseInt()方法使用介绍
2013/12/19 Javascript
使用CSS样式position:fixed水平滚动的方法
2014/02/19 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
浅谈js键盘事件全面控制
2016/12/01 Javascript
javascript数组去重方法分析
2016/12/15 Javascript
Three.js利用Detector.js插件如何实现兼容性检测详解
2017/09/26 Javascript
JS实现十分钟倒计时代码实例
2018/10/18 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
Python assert语句的简单使用示例
2019/07/28 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
关于阿里云oss获取sts凭证 app直传 python的实例
2019/08/20 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
Python selenium环境搭建实现过程解析
2020/09/08 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
css3 transform属性详解
2014/09/30 HTML / CSS
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
校本培训个人总结
2015/02/28 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
html5调用摄像头实例代码
2021/06/28 HTML / CSS