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清除指定目录内所有文件中script的方法
Jun 30 Python
Python爬取国外天气预报网站的方法
Jul 10 Python
python比较两个列表是否相等的方法
Jul 28 Python
举例讲解Python中的死锁、可重入锁和互斥锁
Nov 05 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
Sep 11 Python
解决安装pycharm后不能执行python脚本的问题
Jan 19 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 Python
jupyter notebook 多行输出实例
Apr 09 Python
Python基于当前时间批量创建文件
May 07 Python
PyCharm常用配置和常用插件(小结)
Feb 06 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
各种战术和打法的原创者
2020/03/04 星际争霸
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
PHP函数func_num_args用法实例分析
2015/12/07 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
JavaScript的变量作用域深入理解
2009/10/25 Javascript
JavaScript关于select的相关操作说明
2010/01/13 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
基于jQuery通过jQuery.form.js插件使用ajax提交form表单
2015/08/17 Javascript
深入浅析Node.js 事件循环
2015/12/20 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
nodejs对项目下所有空文件夹创建gitkeep的方法
2019/08/02 NodeJs
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
python实现简单的计时器功能函数
2015/03/14 Python
Python的Django框架中的数据过滤功能
2015/07/17 Python
Python处理文本文件中控制字符的方法
2017/02/07 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
实践Vim配置python开发环境
2018/07/02 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
使用python的pandas为你的股票绘制趋势图
2019/06/26 Python
python urllib爬虫模块使用解析
2019/09/05 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
Python模块future用法原理详解
2020/01/20 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
SKECHERS官方旗舰店:美国舒适运动休闲品牌
2017/12/22 全球购物
经营理念标语
2014/06/21 职场文书
总账会计岗位职责
2015/04/02 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
创业计划书之零食店(进口)
2019/09/24 职场文书
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python