configparser模块 配置文件的解析操作

# 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"))  # 最后一步必须将删,改,增写入到一个文件中(可与原文件同名,覆盖原文件)

猜你喜欢

转载自www.cnblogs.com/dangrui0725/p/9451116.html