ConfigParser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。
注意:在python 3 中ConfigParser模块名已更名为configparser
config.read('example.ini',encoding="utf-8")
"""读取配置文件,python3可以不加encoding"""
options(section)
"""sections(): 得到所有的section,并以列表的形式返回"""
config.defaults()
"""defaults():返回一个包含实例范围默认值的词典"""
config.add_section(section)
"""添加一个新的section"""
config.has_section(section)
"""判断是否有section"""
print(config.options(section))
"""得到该section的所有option"""
has_option(section, option)
"""判断如果section和option都存在则返回True否则False"""
read_file(f, source=None)
"""读取配置文件内容,f必须是unicode"""
read_string(string, source=’’)
"""从字符串解析配置数据"""
read_dict(dictionary, source=’’)
"""从词典解析配置数据"""
get(section, option, *, raw=False, vars=None[, fallback])
"""得到section中option的值,返回为string类型"""
getint(section,option)
"""得到section中option的值,返回为int类型"""
getfloat(section,option)
"""得到section中option的值,返回为float类型"""
getboolean(section, option)
"""得到section中option的值,返回为boolean类型"""
items(raw=False, vars=None)
"""和items(section, raw=False, vars=None):列出选项的名称和值"""
set(section, option, value)
"""对section中的option进行设置"""
write(fileobject, space_around_delimiters=True)
"""将内容写入配置文件。"""
remove_option(section, option)
"""从指定section移除option"""
remove_section(section)
"""移除section"""
optionxform(option)
"""将输入文件中,或客户端代码传递的option名转化成内部结构使用的形式。默认实现返回option的小写形式;"""
readfp(fp, filename=None)
"""从文件fp中解析数据"""
生成configparser文件实例
import configparser #配置文件
config = configparser.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'
"""写入后缀为.ini的文件"""
with open('example.ini', 'w') as configfile:
config.write(configfile)
运行结果:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
读取configparser配置文件的实例
import configparser #配置文件
config = configparser.ConfigParser()
config.read("example.ini")
print("所有节点==>",config.sections())
print("包含实例范围默认值的词典==>",config.defaults())
for item in config["DEFAULT"]:
print("循环节点topsecret.server.com下所有option==>",item)
print("bitbucket.org节点下所有option的key,包括默认option==>",config.options("bitbucket.org"))
print("输出元组,包括option的key和value",config.items('bitbucket.org'))
print("bitbucket.org下user的值==>",config["bitbucket.org"]["user"]) #方式一
topsecret = config['bitbucket.org']
print("bitbucket.org下user的值==>",topsecret["user"]) #方式二
print("判断bitbucket.org节点是否存在==>",'bitbucket.org' in config)
print("获取bitbucket.org下user的值==>",config.get("bitbucket.org","user"))
print("获取option值为数字的:host port=",config.getint("topsecret.server.com","host port"))
运行结果
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
删除配置文件section和option的实例(默认分组有参数时无法删除,但可以先删除下面的option,再删分组)
import configparser #配置文件
config = configparser.ConfigParser()
config.read("example.ini")
config.remove_section("bitbucket.org")
"""删除分组"""
config.remove_option("topsecret.server.com","host port")
"""删除某组下面的某个值"""
config.write(open('example.ini', "w"))
运行结果
1 2 3 4 5 6 7 8 |
|
配置文件的修改实例
"""修改"""
import configparser
config = configparser.ConfigParser()
config.read("example.ini")
config.add_section("new_section")
"""新增分组"""
config.set("DEFAULT","compressionlevel","110")
"""设置DEFAULT分组下compressionlevel的值为110"""
config.write(open('example.ini', "w"))
运行结果
1 2 3 4 5 6 7 8 9 10 |
|