Python3基础-configparser模块

 

configparser模块在python中是用来读取配置文件,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节(section),每个节可以有多个参数(键=值)。 

[DEFAULT]
minsdkversion = 15
targetsdkversion = 24
versionname = 1.0.0
server action = yes
forwardx11 = yes

[susu.me]
user = susu

[mysql]
ip = 127.0.0.1
port = 8080

生成configparser文件实例

import  configparser  #配置文件
config = configparser.ConfigParser() #生成configparser配置文件,字典的形式 即config={}
"""第一种写法"""
config["DEFAULT"] = {'minSdkVersion': '15',
                     'targetSdkVersion': '24',
                     'versionName': '1.0.0',
                     'server action':'yes'
                     }
"""第二种写法"""
config['susu.me'] = {}
config['susu.me']['user'] = 'susu'

"""第三种写法"""
config['mysql'] = {}
topsecret = config['mysql']
topsecret['ip'] = '127.0.0.1'
topsecret['port'] = '8080'

config['DEFAULT']['ForwardX11'] = 'yes'
"""写入后缀为.ini的文件"""
with open('example.ini', 'w') as configfile:
    config.write(configfile)

==================增删改查=======================

#读取configparser配置文件的实例

import  configparser

config = configparser.ConfigParser()
config.read('example.ini',encoding='utf-8') #"""读取配置文件,python3可以不加encoding"""

print("所有节点:",config.sections()) #"""sections(): 得到所有的section,并以列表的形式返回"""
print("包含实例范围默认值的词典==>",config.defaults()) #"""defaults():返回一个包含实例范围默认值的词典"""

#循环遍历 DEFAULT,取出key和对应的key值
dic = config['DEFAULT']
for item in config['DEFAULT']:
    print(item,dic[item])

print("susu.me节点下所有option的key,包括默认option==>",config.options("susu.me"))
#"""和items(section, raw=False, vars=None):列出选项的名称和值"""
print("输出元组,包括option的key和value",config.items('susu.me'))

print("susu.me下user的值==>",config["susu.me"]["user"]) #方法一

dic_su = config['susu.me']
print("susu.me下user的值==>",dic_su['user'])   #方法二

print("判断susu.me节点是否存在==>", 'susu.me' in config)

#"""得到section中option的值,返回为string类型"""
print("获取susu.me下user的值==>", config.get("susu.me", "user"))

#getint(section,option)
# """得到section中option的值,返回为int类型"""
# getfloat(section,option)
# """得到section中option的值,返回为float类型"""
# getboolean(section, option)
# """得到section中option的值,返回为boolean类型"""
print("获取option值为数字的:port=", config.getint("mysql", "port"))
所有节点: ['susu.me', 'mysql']
包含实例范围默认值的词典==> OrderedDict([('minsdkversion', '15'), ('targetsdkversion', '24'), ('versionname', '1.0.0'), ('server action', 'yes'), ('forwardx11', 'yes')])
minsdkversion 15
targetsdkversion 24
versionname 1.0.0
server action yes
forwardx11 yes
susu.me节点下所有option的key,包括默认option==> ['user', 'minsdkversion', 'targetsdkversion', 'versionname', 'server action', 'forwardx11']
输出元组,包括option的key和value [('minsdkversion', '15'), ('targetsdkversion', '24'), ('versionname', '1.0.0'), ('server action', 'yes'), ('forwardx11', 'yes'), ('user', 'susu')]
susu.me下user的值==> susu
susu.me下user的值==> susu
判断susu.me节点是否存在==> True
获取susu.me下user的值==> susu
获取option值为数字的:port= 8080
执行结果如下

#删除配置文件(默认分组有参数时无法删除,但可以先删除下面的option,再删分组)

import  configparser

config = configparser.ConfigParser()
config.read('example.ini')
config.remove_section("susu.me")  #"""移除section"""
config.remove_option("mysql","port")         #"""从指定section移除option"""
config.remove_option("DEFAULT","forwardx11")  
#write(fileobject, space_around_delimiters=True)
#"""将内容写入配置文件。"""
config.write(open('example.ini','w'))
[DEFAULT]
minsdkversion = 15
targetsdkversion = 24
versionname = 1.0.0
server action = yes

[mysql]
ip = 127.0.0.1
执行结果如下

#新增修改配置文件

import  configparser

config = configparser.ConfigParser()
config.read('example.ini')
config.add_section("topsecret.server.com") #新增分组
config['topsecret.server.com']['host port'] = '50022'

config.set("DEFAULT","versionname","1.1.0")
"""设置DEFAULT分组下versionname的值为1.1.0"""

config.write(open('example.ini','w'))
[DEFAULT]
minsdkversion = 15
targetsdkversion = 24
versionname = 1.1.0
server action = yes

[mysql]
ip = 127.0.0.1

[topsecret.server.com]
host port = 50022
执行结果如下

 ====================================================

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中解析数据"""
cinfigparser功能模块

 

posted @ 2019-11-01 15:38  槑槑DE  阅读(287)  评论(0编辑  收藏  举报