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双向链表实现实例代码
Nov 21 Python
Python实现3行代码解简单的一元一次方程
Aug 18 Python
python numpy函数中的linspace创建等差数列详解
Oct 13 Python
python实现可视化动态CPU性能监控
Jun 21 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
python爬虫模块URL管理器模块用法解析
Feb 03 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 Python
在jupyter notebook 添加 conda 环境的操作详解
Apr 10 Python
Python爬虫工具requests-html使用解析
Apr 29 Python
基于Python爬取素材网站音频文件
Oct 21 Python
Django多数据库联用实现方法解析
Nov 12 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中使用gettext来支持多语言的方法
2011/05/02 PHP
使用php shell命令合并图片的代码
2011/06/23 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
php文件缓存方法总结
2016/03/16 PHP
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
鼠标放在图片上显示大图的JS代码
2013/03/26 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
Vuejs第十三篇之组件——杂项
2016/09/09 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
详解vue-router 2.0 常用基础知识点之router-link
2017/05/10 Javascript
ES6中新增的Object.assign()方法详解
2017/09/22 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
angularJS自定义directive之带参方法传递详解
2018/10/09 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
[04:11]2014DOTA2国际邀请赛 CIS遗憾出局梦想不灭
2014/07/09 DOTA
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
python保存字符串到文件的方法
2015/07/01 Python
深入浅析python继承问题
2016/05/29 Python
Python实现将Excel转换成为image的方法
2018/10/23 Python
Django接收自定义http header过程详解
2019/08/23 Python
高中地理教学反思
2014/01/29 职场文书
大学生个人求职信
2014/06/02 职场文书
印刷技术专业自荐信
2014/09/18 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
平安建设汇报材料
2014/12/29 职场文书
2015年项目工作总结
2015/04/29 职场文书
食品药品安全责任书
2015/05/11 职场文书
新员工入职感言范文!
2019/07/04 职场文书
python 实现定时任务的四种方式
2021/04/01 Python
Go 语言结构实例分析
2021/07/04 Golang
Python图片验证码降噪和8邻域降噪
2021/08/30 Python