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 相关文章推荐
pyside写ui界面入门示例
Jan 22 Python
Python实现抓取网页并且解析的实例
Sep 20 Python
Python连接PostgreSQL数据库的方法
Nov 28 Python
python3设计模式之简单工厂模式
Oct 17 Python
Python排序搜索基本算法之冒泡排序实例分析
Dec 09 Python
PHP实现发送和接收JSON请求
Jun 07 Python
python 自动去除空行的实例
Jul 24 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
Python如何将装饰器定义为类
Jul 30 Python
python实现ROA算子边缘检测算法
Apr 05 Python
Python语言内置数据类型
Feb 24 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
PhpDocumentor 2安装以及生成API文档的方法
2014/05/21 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
js处理表格对table进行修饰
2014/05/26 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
详解vue过滤器在v2.0版本用法
2017/06/01 Javascript
vue实现样式之间的切换及vue动态样式的实现方法
2017/12/19 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
2019/05/14 jQuery
优化Vue项目编译文件大小的方法步骤
2019/05/27 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
python学生管理系统开发
2019/01/30 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
Python发送邮件封装实现过程详解
2020/05/09 Python
python 实现ping测试延迟的两种方法
2020/12/10 Python
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
设计师家具购买和委托在线市场:Viyet
2016/11/16 全球购物
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
大学旷课检讨书
2014/01/28 职场文书
电子信息科学专业自荐信
2014/01/30 职场文书
五年级英语教学反思
2014/01/31 职场文书
新闻编辑专业自荐信
2014/07/02 职场文书
村党建工作汇报材料
2014/11/02 职场文书
作文批改评语
2014/12/25 职场文书
公务员政审个人总结
2015/02/12 职场文书
选调生挂职锻炼工作总结
2015/10/23 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers
MySQL RC事务隔离的实现
2022/03/31 MySQL