import configparser
config = configparser.ConfigParser()
# 字典模式生成配置文件
# 第一个section
config['DEFAULT'] = {
'A': 'abc',
'B': '123', # 数字也要写成string类型
'C': 'hello'}
# 第二个section
config['Head'] = {'H1': '100', 'H2': '200', 'H3': '300'}
# 第三个section
config['www'] = {'W1': '199', 'W2': '299'}
# 生成配置文件 并写入
with open('example.ini', 'w') as configfile:
config.write(configfile)
# 读取配置文件
config.read('example.ini', encoding='utf8')
# 打印section时,不会打印默认DEFAULTS,以list形式打印
print('config.sections():', config.sections())
# 打印defaults 时 会以键值对,元组形式打印
print('config.defaults():', config.defaults())
# 判断section是否存在
print('www' in config) # 存在 True
print('mmm' in config) # 不存在 False
# 添加 section
config.add_section('T')
print(config.sections())
# 打印[指定section][指定键名]
print(config['Head']['H2'])
# 打印某一个非default section时,会将默认内容一并打印
for key in config['Head']:
print(key)
# set() 修改 键值 指定section,指定键名,修改成的值
config.set('www', 'W2', '2000')
# 删除section
config.remove_section('T')
print(config.sections())
# 删除键 option
config.remove_option('www', 'W1') # 注意 如果后续没有重新写入文件操作,该操作不会真正成功
# 只能新建 或是 覆盖原文件 不能直接修改
config.remove_section('www') # 注意 如果后续没有重新写入文件操作,该操作不会真正成功
# 重新写入操作,也叫持久化操作 可以把下面注释掉看看配置文件 上面的删除操作不会成功
with open('example.ini', 'w') as configfile:
config.write(configfile)
要点:
- config['section']={dict} ,dict字典赋值
- 生成配置文件,类似文件操作。with open('filename','w') as configfile: config.write(configfile)
- 利用config.section() 获取section时,以list形式打印,不会打印默认DEFAULTS
- 利用config.defaults() 获取defaults时,会以键值对,元组形式打印
- 判断section是否存在:'section' in config
- 添加section:config.add_section('section_name')
- 打印某section下的键的值:config['section_name']['key']
- 修改某section下的键的值:config.set('section_name','key','value')
- 删除某section:config.remove_section('section_name')
- 删除某section下的某个键:confg.remove_option('section_name','key')
- 持久化操作,就是文件的写入,在完成配置文件的增删改后,重新写入。with open('filename','w') as configfile: config.write(configfile)