五分钟掌握Python中配置文件解析器configparser的使用
--- 好的方法很多,我们先掌握一种 ---
【背景】
这里描述的配置文件为自动化用例中使用到的信息,非pytest自动化框架中例如pytest.ini, conftest.py等具有特殊意义的配置文件。
测试过程中一些固定的参数,例如:环境信息,用户密码等。我们可以存放在一个文件中,进行统一的维护管理,在用例中进行调用。
【方法】
对于配置文件的设计和获取有很多方法(yaml,json等等),这次我们说一个简单的,利用Python的configparser。
它是 Pyhton 标准库中用来解析配置文件的模块,它提供了方便的方法来解析配置文件并提取特定的配置项值,注意需要区分大小写。
配置文件由section和items 这2部分组成,对文件本身类型没有限制,满足类字典(键和值对应)类型就可以:
section是相当于标签,用于区分不同的配置块。
items是section下面的键和值。
配置文件的设计:
# 用户信息配置
[user_msg]
name = zhangsan
passwd = 123 # 安装信息配置
[install]
install_dir = /home/test/install_path
【使用】
1. 内置模块导入和实例化
configparser属于内置模块,直接import就行,然后进行实例化
import configparser
conf = configparser.ConfigParser()
# 或者如下方式导入
from configparser import ConfigParser
conf = ConfigParser()
2. 先读取配置文件,然后获取配置项的值
config_path = '这里指定配置文件的路径'
# config_path = os.path.join(os.path.dirname(__file__),'config_file')
conf.read(config_path) # 取得配置文件中的信息
name = conf.get('user_msg','name') #获取用户信息中的name姓名
print(name)
【其他常用方法】
基于上面的示例conf
conf.section() # 获取所有section,以列表形式返回(注意:不收集DEFAULT这个标签)
conf.add_section('new_section') # 添加一个新标签,重名将报错
conf.has_section('section') # 判断是否存在这个标签,如果存在返回True
conf.option('section') # 获取该section下的所有option,如果存在DEFAULT标签,会将它下面的option一起返回,只有名没有值
conf.has_option('section','option') # 判断某个section下是否存在指定的option,找不到自己的会到DEFAULT下找
conf.set(section,option,value) # 如果section和option都存在,则将对应的option值重设为value
【结尾】
配置文件如果作为自动化框架中用户的固定信息统一维护管理,一般通过get去获取信息情况较多。
当然configparser还有高阶方法,例如:实例化的设置,高级定制,需要更深入学习的小伙伴可查阅对应模块手册。
五分钟掌握Python中配置文件解析器configparser的使用的更多相关文章
- Python中配置文件解析模块-ConfigParser
Python中有ConfigParser类,可以很方便的从配置文件中读取数据(如DB的配置,路径的配置).配置文件的格式是: []包含的叫section, section 下有option=value ...
- Python模块:配置文件解析器configparser
版权声明:本文为博主皮皮http://blog.csdn.net/pipisorry原创文章,未经博主同意不得转载. https://blog.csdn.net/pipisorry/article/d ...
- python接口自动化测试 - configparser配置文件解析器详细使用
configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...
- 五分钟学会Python装饰器,看完面试不再慌
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第12篇文章,我们来看看Python装饰器. 一段囧事 差不多五年前面试的时候,我就领教过它的重要性.那时候我Pyt ...
- python中html解析-Beautiful Soup
1. Beautiful Soup的简介 简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据.官方解释如下: Beautiful Soup提供一些简单的.pyt ...
- parseConf(配置文件解析器)
/****************************************************************************** * * parseConf(配置文件解析 ...
- golang开发:类库篇(四)配置文件解析器goconfig的使用
为什么要使用goconfig解析配置文件 目前各语言框架对配置文件书写基本都差不多,基本都是首先配置一些基础变量,基本变量里面有环境的配置,然后通过环境变量去获取该环境下的变量.例如,生产环境跟测试环 ...
- python中@property装饰器的使用
目录 python中@property装饰器的使用 1.引出问题 2.初步改善 3.使用@property 4.解析@property 5.总结 python中@property装饰器的使用 1.引出 ...
- WCF中配置文件解析
WCF中配置文件解析[1] 2014-06-14 WCF中配置文件解析 参考 WCF中配置文件解析 返回 在WCF Service Configuration Editor的使用中,我们通过配置工具自 ...
- 简单说明Python中的装饰器的用法
简单说明Python中的装饰器的用法 这篇文章主要简单说明了Python中的装饰器的用法,装饰器在Python的进阶学习中非常重要,示例代码基于Python2.x,需要的朋友可以参考下 装饰器对与 ...
随机推荐
- Spring Boot 中使用 JSON Schema 来校验复杂JSON数据
JSON是我们编写API时候用于数据传递的常用格式,那么你是否知道JSON Schema呢? 在数据交换领域,JSON Schema 以其强大的标准化能力,为定义和规范 JSON 数据的结构与规则提供 ...
- RabbitMq高级特性之延迟队列 通俗易懂 超详细 【内含案例】
RabbitMq高级特性之延迟队列 介绍 消息进入队列后不能立即被消费,到达指定时间后才可被消费 实现 结合以下两种即可达到延迟队列 RabbitMq高级特性之TTL过期时间 RabbitMq高级特性 ...
- 【牛客刷题】HJ15 求int型正整数在内存中存储时1的个数
题目链接 题倒是很简单,最开始用了这么一种解法: package main import "fmt" func main() { a := 0 fmt.Scan(&a) s ...
- 【SpringCloud学习笔记(二)】用nacos做配置中心
1. 学习目的 nacos除了作为服务注册中心之外,还能用作配置中心,可以说满足了日常的大部分需要.本次就是要学会如何使用nacos作为配置中心. 2. 操作 要使用nacos作为配置中心,需要首先引 ...
- UCX84X笔记
1. 管脚定义 COMP: 误差放大器补偿引脚.将外部补偿元件连接到此引脚,以修改误差放大器输出.误差放大器内部有电流限制,因此用户可以通过外部强制COMP接地来命令零占空比. UCx84x系列中的误 ...
- 手把手教你如何上传代码到gitee服务器
之前编写了几个适合新手的小项目, 为方便大家学习和下载代码, 决定把代码上传到gitee服务器. 不得不说,git是一个非常好用的代码版本管理工具, 本文手把手教大家如何将自己编写的代码上传到Gite ...
- 一文教你如何用C代码解析一段网络数据包?【含代码】
本文的目的是通过随机截取的一段网络数据包,然后根据协议类型来解析出这段内存. 学习本文需要掌握的基础知识: 网络协议 C语言 Linux操作 抓包工具的使用 其中抓包工具的安装和使用见下文: < ...
- 将文件的换行符由 CRLF 转换为 LF
在 DOS/Windows 文本文件中,换行,也称为新行,是两个字符的组合:回车(CR)后跟一个换行(LF).在 Unix 文本文件中,一行的换行是单个字符:换行(LF).在 Mac 文本文件中,在 ...
- 【Python】之操作鼠标键盘,上传文件,并支持中文
Mac系统实现操作键盘 Python中模拟键盘和鼠标最著名的模块是:pymouse和pykeyboard.一次安装两个模块比较麻烦,而有一个库整合了这两个模块,而且能支持跨平台操作,这个库叫PyUse ...
- 阿里云【七天深入MySQL实战营】
阿里云[七天深入MySQL实战营] 最近报名了阿里云[七天深入MySQL实战营].不过一直没时间看[最主要还是自己懒],看了下课程及答疑信息,感觉应该还可以,分享出来和大家一起学习学习.现在课程已经 ...