博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
常用模块 - configparse模块
阅读量:5304 次
发布时间:2019-06-14

本文共 4307 字,大约阅读时间需要 14 分钟。

一、简介

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 configparserconfig = 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 parsertopsecret['ForwardX11'] = 'no' # same hereconfig['DEFAULT']['ForwardX11'] = 'yes'"""写入后缀为.ini的文件"""with open('example.ini', 'w') as configfile: config.write(configfile)

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

[DEFAULT]compression = yescompressionlevel = 9serveraliveinterval = 45forwardx11 = yes[bitbucket.org]user = hg[topsecret.server.com]host port = 50022forwardx11 = 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 configparserconfig = 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==> forwardx11bitbucket.org节点下所有option的key,包括默认option==> ['user', 'compression', 'compressionlevel', 'serveraliveinterval', 'forwardx11']输出元组,包括option的key和value [('compression', 'yes'), ('compressionlevel', '9'), ('serveraliveinterval', '45'), ('forwardx11', 'yes'), ('user', 'hg')]bitbucket.org下user的值==> hgbitbucket.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 configparserconfig = 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 = yescompressionlevel = 9serveraliveinterval = 45forwardx11 = 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 configparserconfig = 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 = yescompressionlevel = 110serveraliveinterval = 45forwardx11 = yes[topsecret.server.com]forwardx11 = no[new_section]

 

转载于:https://www.cnblogs.com/mayi0312/p/10965649.html

你可能感兴趣的文章
电脑的自带图标的显示
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
C++ 删除字符串的两种实现方式
查看>>
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
查看>>
Java抽象类和接口的比较
查看>>
开发进度一
查看>>
MyBaits学习
查看>>
管道,数据共享,进程池
查看>>
CSS
查看>>
[LeetCode] 55. Jump Game_ Medium tag: Dynamic Programming
查看>>
[Cypress] Stub a Post Request for Successful Form Submission with Cypress
查看>>
程序集的混淆及签名
查看>>
判断9X9数组是否是数独的java代码
查看>>
00-自测1. 打印沙漏
查看>>
UNITY在VS中调试
查看>>
SDUTOJ3754_黑白棋(纯模拟)
查看>>
Scala入门(1)Linux下Scala(2.12.1)安装
查看>>
如何改善下面的代码 领导说了很耗资源
查看>>
Quartus II 中常见Warning 原因及解决方法
查看>>
php中的isset和empty的用法区别
查看>>