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中的相对导入和绝对导入
Jan 06 Python
Python 实现数据库(SQL)更新脚本的生成方法
Jul 09 Python
遗传算法之Python实现代码
Oct 10 Python
Python中的TCP socket写法示例
May 11 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 Python
python实时检测键盘输入函数的示例
Jul 17 Python
关于Python-faker的函数效果一览
Nov 28 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 Python
Python 微信公众号文章爬取的示例代码
Nov 30 Python
使用Python实现音频双通道分离
Dec 25 Python
[原创]赚疯了!转手立赚800+?大佬的python「抢茅台脚本」使用教程
Jan 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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
mysql总结之explain
2012/02/27 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
2015/07/06 PHP
JavaScript中的变量作用域介绍
2014/12/31 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
一分钟理解js闭包
2016/05/04 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
2016/09/13 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
环形加载进度条封装(Vue插件版和原生js版)
2019/12/04 Javascript
JS原型对象操作实例分析
2020/06/06 Javascript
Vue初始化中的选项合并之initInternalComponent详解
2020/06/11 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
python中pandas.DataFrame排除特定行方法示例
2017/03/12 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
python编程使用selenium模拟登陆淘宝实例代码
2018/01/25 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
使用Python三角函数公式计算三角形的夹角案例
2020/04/15 Python
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
几个Linux面试题笔试题
2016/08/01 面试题
社区党员先进事迹
2014/01/22 职场文书
英文求职信范文
2014/05/23 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
房屋过户委托书范本
2014/10/07 职场文书
党员群众路线教育实践活动学习笔记
2014/11/05 职场文书
六年级语文下册教学计划
2015/01/22 职场文书
MySQL 十大常用字符串函数详解
2021/06/30 MySQL
MySQL中rank() over、dense_rank() over、row_number() over用法介绍
2022/03/23 MySQL
Tomcat项目启动失败的原因和解决办法
2022/04/20 Servers