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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。