configparser模块

'''文本配置文件:相当于一个字典,[DEFAULT][bitbucket.org][topsecret.server.com]都是key值,所对应的数据是字典格式'''

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'
# topsecret['ForwardX11'] = 'no'
#
# config['DEFAULT']['ForwardX11'] = 'yes'
#
# with open('example.ini', 'w') as f:
# config.write(f) # 和之前的文件写入操作有点不一样,这里的f是作为参数


# -------------------------------查-------------------------------
# print(config.sections()) # []没有对任何一个文件进行读取,所以取到的块名为空
# config.read('example.ini')
# print(config.sections()) # ['bitbucket.org', 'topsecret.server.com']默认块名'[DEFAULT]'没有进行读取,所以只有两个

# print('bytebong.com' in config) # False
# print('DEFAULT' in config) # True
# print('bitbucket.org' in config) # True

# print(config['bitbucket.org']['User']) # Hg

# for key in config['bitbucket.org']:
# print(key) # user、serveraliveinterval、compression、compressionlevel、forwardx11----->DEFAULT是有特殊意义的,不同于其它键,当遍历其它键的时候,它都会跟着出现;如果不想要,就别以DEFAULT命名
# for key in config['topsecret.server.com']:
# print(key) # host port、forwardx11、serveraliveinterval、compression、compressionlevel----->forwawrdx11键同名了,所以这里只打印一个

# 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', 'compressionlevel')) # '9'----->就是要传两个参数,少一个就会报错


# -------------------------------删,改,增config.write(open('i.cfg', 'w'))-------------------------------
# config.read('example.ini')
#
# config.add_section('yuan') # 增加一个块
#
# config.set('yuan', 'k1', 'v1') # 在指定的块下面添加数据,第二个值为key,第三个值为value
#
# config.remove_section('topsecret.server.com') # 'topsecret.server.com'块被删除
#
# config.remove_option('bitbucket.org', 'user') # 把'bitbucket.org'块下面的'user'键值对删除
#
# config.set('yuan', 'k1', 'v2') # 修改某一个块下面键值对的值数据
#
# config.write((open('i.cfg', 'w'))) # 这种写法可以不用close


# example.ini文件里的数据
'''
[DEFAULT]
serveraliveinterval = 45
compression = yes
compressionlevel = 9
forwardx11 = yes

[bitbucket.org]
user = Hg

[topsecret.server.com]
host port = 50022
forwardx11 = no
'''

 

上一篇:python configparser日志处理模块(ini格式)


下一篇:ConfigParser: '%' must be followed by '%' or '(', found: "%&'