当前位置:
首页 > temp > python入门教程 >
-
Python 之ConfigParser模块
前言
在做项目的时候一些配置文件都会写在settings配置文件中,今天在研究"州的先生"开源文档写作系统-MrDoc的时候,发现部分配置文件写在config.ini中,并利用configparser进行相关配置文件的读取及修改。
一、ConfigParser模块简介
该模块适用于配置文件的格式与windows ini文件类似,是用来读取配置文件的包。配置文件的格式如下:中括号“[ ]”内包含的为section。section 下面为类似于key-value 的配置内容。格式如下:
1
2
3
4
5
6
7
8
9
10
|
[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.写入操作
代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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.读取操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
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.修改操作
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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) |
出处:https://www.cnblogs.com/xiaozhangpython/p/13802535.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数