python基础____学习笔记16 (配置文件解析)

使用ConfigParse 解析配置文件
电脑主机中有许多.ini 或conf的配置文件,形如

[control_gui]
serverIP=127.0.0.1
serverPort=9920
[control]
maxtrytime=5
averageLevel=12.3
isEnableSend=False

configParse模块有一个ConfigParser类,首先创建ConfigParser类,ConfigParser类有个allow_no_value 参数,默认值为False, 当为True时,允许选项没有值,即serverIP 没有值。

ConfigParser 中有很多的方法,其中与读取配置文件,判断配置项相关的方法有:

  •     sections : 返回一个包含所有章节的列表;
  •     has_section :判断章节是否存在;
  •     items :以元组的形式返回所有选项;
  •     options :返回一个包含章节下所有选项的列表;
  •     has_option :判断某个选项是否存在;
  •     get、getboolean、getinit、getfloat :获取选项的值

ConfigParser 也提供了许多方法便于我们修改配置文件:

  •     remove_section :删除一个章节;
  •     add_section :添加一个章节;
  •     remote_option :删除一个选项;
  •     set :添加一个选项;
  •     write 将 ConfigParser 对象中的数据保存到文件中.
import configparser

cfp = configparser.ConfigParser(allow_no_value=True)
cfp.read('myconf.ini')


for section in cfp.sections():
    print('section:', section)
    for option in cfp.options(section):
        print(option)
print('\n')

serverIp = cfp.get('control_gui', 'serverIP')
serverPort = cfp.getint('control_gui', 'serverPort')
averageLevel =  cfp.getfloat('control', 'averageLevel')
isEnableSend = cfp.getboolean('control', 'isEnableSend')
print('serverIp:', serverIp)
print('serverPort:', serverPort)
print('averageLevel:', averageLevel)
print('isEnableSend:', isEnableSend)


cfp.set('control_gui', 'serverPort', str(9998))
cfp.set('control_gui', 'serverIP', '192.168.2.5')
cfp.write(open('myconf.ini','w'))


输出
section: control_gui
serverip
serverport
section: control
maxtrytime
averagelevel
isenablesend


serverIp: 192.168.2.5
serverPort: 9998
averageLevel: 12.3
isEnableSend: False

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值