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中用于返回绝对值的abs()方法
May 14 Python
python去除文件中空格、Tab及回车的方法
Apr 12 Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 Python
发布你的Python模块详解
Sep 15 Python
python的paramiko模块实现远程控制和传输示例
Oct 13 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
浅谈Python中eval的强大与危害
Mar 13 Python
使用tensorflow DataSet实现高效加载变长文本输入
Jan 20 Python
Python文件时间操作步骤代码详解
Apr 13 Python
keras做CNN的训练误差loss的下降操作
Jun 22 Python
python 合并多个excel中同名的sheet
Jan 22 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 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
如何用C语言编写PHP扩展的详解
2013/06/13 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
Javascript调用XML制作连动下拉列表框
2006/06/25 Javascript
JavaScript While 循环基础教程
2007/04/05 Javascript
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
前淘宝前端开发工程师阿当的PPT中有JS技术理念问题
2010/01/15 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
Nodejs极简入门教程(一):模块机制
2014/10/25 NodeJs
Validform验证时可以为空否则按照指定格式验证
2017/10/20 Javascript
vue实现商城购物车功能
2017/11/27 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
Python 元组(Tuple)操作详解
2014/03/11 Python
python使用matplotlib绘制折线图教程
2017/02/08 Python
Python利用字典将两个通讯录文本合并为一个文本实例
2018/01/16 Python
Python多线程扫描端口代码示例
2018/02/09 Python
Python中str.join()简单用法示例
2018/03/20 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
Python-opencv 双线性插值实例
2020/01/17 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
Python实现手势识别
2020/10/21 Python
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
如何选择使用结构还是类
2014/05/30 面试题
高职助产应届生自荐信
2013/09/24 职场文书
行政人事岗位职责
2014/03/17 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python
详解JVM系列之内存模型
2021/06/10 Javascript
Log4j.properties配置及其使用
2021/08/02 Java/Android