# configparser模块 配置文件的解析操作
import configparser
'''
一个常见的配置文件
[DEFAULT]
ServerAliveInterval = 45
Compression = yes
CompressionLevel = 9
ForwardX11 = yes
[bitbucket.org]
User = hg
[topsecret.server.com]
Port = 50022
ForwardX11 = no
'''
# 生成上面的配置文件
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)
# 对配置文件的增删改查
config = configparser.ConfigParser()
# 查询 查询内容不区分大小写
config.read('example.ini')
print(config.sections()) # ['bitbucket.org', 'topsecret.server.com']
print('bytebong.com' in config) # False
print(config['bitbucket.org']['User']) # hg
print(config['DEFAULT']['Compression']) # yes
print(config['topsecret.server.com']['ForwardX11']) # no
# 遍历 注意[default]中的信息虽然没有在下例中遍历,但是它也会显示
for key in config['bitbucket.org']:
print(key)
# user
# serveraliveinterval
# compression
# compressionlevel
# forwardx11
print(
config.options('bitbucket.org')) # ['user', 'serveraliveinterval', 'compression', 'compressionlevel', 'forwardx11']
print(config.items(
'bitbucket.org')) # [('serveraliveinterval', '45'), ('compression', 'yes'), ('compressionlevel', '9'), ('forwardx11', 'yes'), ('user', 'hg')]
print(config.get('bitbucket.org', 'compression')) # yes
# 删,改,增(config.write(open('i.cfg', "w")))
config.add_section('yuan') # 新加一个块
config.set('yuan', 'k1', '11111') # 在块中增加一个键值对
config.remove_section('topsecret.server.com') # 删除一个块(同时删除块下所有的内容)
config.remove_option('bitbucket.org', 'user') # 删除一个块中user的键值对
config.write(open('i.cfg', "w")) # 最后一步必须将删,改,增写入到一个文件中(可与原文件同名,覆盖原文件)