Python—如何读取配置文件(configparser)

python3读取配置文件,主要用的就算configparser模块,网上资料很乱,我这里整理一下,分享给大家。

比如我们这么一个配置文件,叫config.ini,内容如下

[account]
username=zhangsan
password=123456

[price]
CCNA=1000
CCNP=3000
RHCE=4000
RHCA=10000
#默认配置区
[DEFAULT]
language=python

我们是这么读取的,这里cfg类似两层字典,第一层叫sections,也就是 account 和 price,第二层叫option,也就是username password CCNA等,注意这里得到的值全部是字符串。注意option被读取后全部自动变成小写

import configparser
cfg=configparser.ConfigParser()
cfg.read('config.ini',encoding='utf-8')   #读取配置文件 防止乱码
cfg.defaults()						  #默认配置的内容 可以当字典用
list(cfg) 							  #所有sections列表  就是account price
cfg.sections()						  #效果同上 但是不包括DEFAULT部分
list(cfg['account'])				  #account下面的key列表
cfg.options('account')				  #效果同上
dict(cfg['account'])				  #获取account的内容,是一个字典
cfg.get('account','username')		  #获取account下面的username值
cfg['account']['username']			  #效果同上
cfg.getint("price","ccna")			  #获取值 转换为整数 不能转换的就报错
cfg.has_section('account')			  #是否有这个section 返回布尔值
cfg.has_option('account','username')  #是否有这个option 必须两个参数
cfg.remove_section('account')		  #删除section 返回布尔值
cfg.remove_option('price','CCNA')     #删除option  返回布尔值
cfg.clear()							  #清空所有配置内容
cfg.add_section('new')				  #增加一个section
cfg.set('new','line','1')			  #增加line=1 到 new的section 必须都是字符串
cfg['new']={"line":1}                 #效果同上  
dict(cfg['new'])					  #查看效果  
with open('config.ini','w') as f:
  cfg.write(f)						  #cfg配置写入到config.ini

注意,我发现section是区分大小写的,但是option是不区分的,也就是你新增的option如果只是大小写不同,会自动转换为全部小写并覆盖前面的。

效果如下 注意到DEFAULT下面的option 在其他的section下也是有效的 所以叫默认
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值