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入门篇之条件、循环
Oct 17 Python
python实现端口转发器的方法
Mar 13 Python
Python模块搜索概念介绍及模块安装方法介绍
Jun 03 Python
python脚本实现数据导出excel格式的简单方法(推荐)
Dec 30 Python
Python自动发邮件脚本
Mar 31 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
python基于socket进行端口转发实现后门隐藏的示例
Jul 25 Python
Django模型修改及数据迁移实现解析
Aug 01 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
JAVA及PYTHON质数计算代码对比解析
Jun 10 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
python代码实现猜拳小游戏
Nov 30 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
关于Intype一些小问题的解决办法
2008/03/28 PHP
php读取二进制流(C语言结构体struct数据文件)的深入解析
2013/06/13 PHP
PHP stream_context_create()函数的使用示例
2015/05/12 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
对new functionName()定义一个函数的理解
2014/05/22 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
JavaScript检测实例属性, 原型属性
2015/02/04 Javascript
jQuery中extend函数详解
2015/02/13 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
详解javascript实现瀑布流绝对式布局
2016/01/29 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
Nodejs从有门道无门菜鸟起飞必看教程
2016/07/20 NodeJs
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
python mysqldb连接数据库
2009/03/16 Python
跟老齐学Python之用Python计算
2014/09/12 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
2017/05/24 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
Python创建简单的神经网络实例讲解
2021/01/04 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
电子商务专业个人的自我评价分享
2013/10/29 职场文书
董事长秘书工作职责
2014/06/10 职场文书
中考百日冲刺决心书
2015/09/22 职场文书
高中班长竞选稿
2015/11/20 职场文书