configparser模块是用来操作配置文件的
如以下配置文件
# 注释1 ; 注释2 [section1] k1 = v1 k2:v2 user=egon age=18 is_admin=true salary=31 [section2] k1 = v1
configparser模块的使用
(1)读取操作
from configparser import ConfigParser config = ConfigParser() config.read('test.ini') # 1.获取sections print(config.sections()) #['section1', 'section2'] ## 2.获取某一sections下的所有的option print(config.options('section1')) #['k1', 'k2', 'user', 'age', 'is_admin', 'salary'] # 3.获取items print(config.items('section1')) # [('k1', 'v1'), ('k2', 'v2'), ('user', 'egon'), ('age', '18'), ('is_admin', 'true'),
('salary', '31')] # 4.获取某个section单独的元素值 print(config.get('section1','user')) # egon <class 'str'> print(config.getint('section1','age')) # 18 <class 'int'> print(config.getboolean('section1','is_admin')) ## True <class 'bool'> print(config.getfloat('section1','salary')) ## 31.0 <class 'float'>
(2)改写操作
import configparser config=configparser.ConfigParser() config.read('a.cfg',encoding='utf-8') #删除整个标题section2 config.remove_section('section2') #删除标题section1下的某个k1和k2 config.remove_option('section1','k1') config.remove_option('section1','k2') #判断是否存在某个标题 print(config.has_section('section1')) #判断标题section1下是否有user print(config.has_option('section1','')) #添加一个标题 config.add_section('egon') #在标题egon下添加name=egon,age=18的配置 config.set('egon','name','egon') config.set('egon','age',18) #报错,必须是字符串 #最后将修改的内容写入文件,完成最终的修改 config.write(open('a.cfg','w'))
import configparser config = configparser.ConfigParser() config["DEFAULT"] = {'ServerAliveInterval': '45', 'Compression': 'yes', 'CompressionLevel': '9'} config['bitbucket.org'] = {} config['bitbucket.org']['User'] = 'hg' config['topsecret.server.com'] = {} topsecret = config['topsecret.server.com'] topsecret['Host Port'] = '50022' # mutates the parser topsecret['ForwardX11'] = 'no' # same here config['DEFAULT']['ForwardX11'] = 'yes' with open('example.ini', 'w') as configfile: config.write(configfile)添加一个ini文档