加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

常用模块 - configparse模块

发布时间:2020-12-14 04:30:02 所属栏目:Windows 来源:网络整理
导读:一、简介 configparser模块在Python中是用来读取配置文件的,配置文件的格式跟windows下的ini配置文件相似,可以包含一个或多个节点(section),每个节可以有多个参数(键=值)。 二、生成配置文件 # ! /usr/bin/env python3 # -*- coding:utf-8 -*- # Auth

一、简介

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

二、生成配置文件

#! /usr/bin/env python3
# -*- coding:utf-8 -*-

# Author   : mayi
# Blog     : http://www.cnblogs.com/mayi0312/
# Date     : 2019/4/3
# Name     : test01
# Software : PyCharm
# Note     : 用于测试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)

运行后,文件“example.ini”中的结果:

[DEFAULT]
compression = yes
compressionlevel = 9
serveraliveinterval = 45
forwardx11 = yes

[bitbucket.org]
user = hg

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

三、解析配置文件

读取configparser配置文件的实例

#! /usr/bin/env python3
# -*- coding:utf-8 -*-

# Author   : mayi
# Blog     : http://www.cnblogs.com/mayi0312/
# Date     : 2019/4/3
# Name     : test01
# Software : PyCharm
# Note     : 用于测试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"))

运行结果:

所有节点==> [bitbucket.org,topsecret.server.com]
包含实例范围默认值的词典==> OrderedDict([(compression,yes),(compressionlevel,9),(serveraliveinterval,45),(forwardx11,yes)])
循环节点topsecret.server.com下所有option==> compression
循环节点topsecret.server.com下所有option==> compressionlevel
循环节点topsecret.server.com下所有option==> serveraliveinterval
循环节点topsecret.server.com下所有option==> forwardx11
bitbucket.org节点下所有option的key,包括默认option==> [user,compression,compressionlevel,serveraliveinterval,forwardx11]
输出元组,包括option的key和value [(compression,(user,hg)]
bitbucket.org下user的值==> hg
bitbucket.org下user的值==> hg
判断bitbucket.org节点是否存在==> True
获取bitbucket.org下user的值==> hg
获取option值为数字的:host port= 50022

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

#! /usr/bin/env python3
# -*- coding:utf-8 -*-

# Author   : mayi
# Blog     : http://www.cnblogs.com/mayi0312/
# Date     : 2019/4/3
# Name     : test01
# Software : PyCharm
# Note     : 用于测试configparser模块的功能
# 导入模块
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"))

运行后,文件“example.ini”中的结果:

[DEFAULT]
compression = yes
compressionlevel = 9
serveraliveinterval = 45
forwardx11 = yes

[topsecret.server.com]
forwardx11 = no

修改配置文件

#! /usr/bin/env python3
# -*- coding:utf-8 -*-

# Author   : mayi
# Blog     : http://www.cnblogs.com/mayi0312/
# Date     : 2019/4/3
# Name     : test01
# Software : PyCharm
# Note     : 用于测试configparser模块的功能
# 导入模块
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"))

运行后,文件“example.ini”中的结果:

[DEFAULT]
compression = yes
compressionlevel = 110
serveraliveinterval = 45
forwardx11 = yes

[topsecret.server.com]
forwardx11 = no

[new_section]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读