Python3中configparser模块读写ini文件并解析配置的用法详解
Python3中configparser模块简介
configparser是Pyhton标准库中用来解析配置文件的模块,并且内置方法和字典非常接近。Python2.x中名为ConfigParser,3.x已更名小写,并加入了一些新功能。
配置文件的格式如下:
[DEFAULT] ServerAliveInterval=45 Compression=yes CompressionLevel=9 ForwardX11=yes [bitbucket.org] User=Tom [topsecret.com] Port:50022 ForwardX11:no
“[]”包含的为section,section下面为类似于key-value的配置内容;
configparser默认支持‘='‘:'两种分隔。
configparser常用方法
初始化实例
使用configparser首先需要初始化实例,并读取配置文件:
>>>importconfigparser
>>>config=configparser.ConfigParser()#注意大小写
>>>config.read("config.ini")#配置文件的路径
["config.ini"]
或者可以直接读字典
>>>parser=configparser.ConfigParser()
>>>parser.read_dict({'section1':{'key1':'value1',
...'key2':'value2',
...'key3':'value3'},
...'section2':{'keyA':'valueA',
...'keyB':'valueB',
...'keyC':'valueC'},
...'section3':{'foo':'x',
...'bar':'y',
...'baz':'z'}
...})
获取所有sections
>>>config.sections() ['bitbucket.org','topsecret.com']#注意会过滤掉[DEFAULT]
获取指定section的keys&values
>>>config.items('topsecret.com')
>>>>[('port','50022'),('forwardx11','no')]#注意items()返回的字符串会全变成小写
获取指定section的keys
>>>config.options('topsecret.com')
['Port','ForwardX11']
>>>foroptioninconfig['topsecret.com']: ...print(option) Port ForwardX11
获取指定key的value
>>>config['bitbucket.org']['User'] 'Tom'
>>>config.get('bitbucket.org','User')
'Tom'
>>>config.getint('topsecret.com','Port')
50022
configparser模块检查
>>>'DEFAULT'inconfig True >>>'test'inconfig['section_test'] False >>>'Tom'inconfig['bitbucket.org']['User'] True
>>>config.has_section('bitbucket.org')
True
>>>config.has_option('section_test','test')
False
configparser模块添加
>>>config.add_section('Section_1')
>>>config.set('Section_1','key_1','value_1')#注意键值是用set()方法
>>>config.write(open('config.ini','w'))#一定要写入才生效
configparser模块删除
>>>config.remove_option('Section_1','key_1')
True
>>>config.remove_section('Section_1')
True
>>>config.clear()#清空除[DEFAULT]之外所有内容
>>>config.write(open('config.ini','w'))
关于[DEFAULT]
[DEFAULT]一般包含ini格式配置文件的默认项,所以configparser部分方法会自动跳过这个section。
前面已经提到sections()是获取不到的,还有删除方法对[DEFAULT]也无效:
>>>config.remove_section('DEFAULT')
False
>>>config.clear()
>>>'DEFAULT'inconfig
True
>>>'ForwardX11'inconfig['DEFAULT']
True
>>>config.sections()
[]
但指定删除和修改[DEFAULT]里的keys&values是可以的:
>>>config.remove_option('DEFAULT','ForwardX11')
True
>>>config.set('DEFAULT','ForwardX11','no')
>>>config['DEFAULT']['ForwardX11']
'no'
还有个特殊的是,has_section()也无效,可以和in区别使用
>>>config.has_section('DEFAULT')
False
>>>'DEFAULT'inconfig
True
更多关于Python3中configparser模块读写ini文件并解析配置的用法请查看下面的相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。