configparser简介

  • ConfigParser模块已在Python 3中重命名为configparser
  • 该模块定义了ConfigParser类。 ConfigParser类实现一种基本的配置文件解析器语言,该语言提供的结构类似于 .ini 文件中的结构

ini文件相关知识

  • 键值对可用 = 或者 : 进行分隔
  • section 的名字是区分大小写的,而 option 的名字是不区分大小写的
  • 键值对中头部和尾部的空白符会被去掉
  • 值可以为多行
  • 配置文件可以包含注释,注释以 # 或者 ; 为前缀

ini文件示例

[server]
age = 45
username = yes # server就是section
# age、username就是option

操作ini文件

认准三部曲

  1. 实例化ConfigParser类
  2. 读取配置文件
  3. 操作配置文件

基础代码

     import configparser

     filename = 'F:/Interface/config/server.ini'
# 实例化configparser
config = configparser.ConfigParser() # 读取配置文件
config.read(filename, encoding="utf-8-sig") # 获取某个option的值(最常见的操作)
config.get(section="server", option="username")

包含知识点

  • 当你配置文件有中文时,在调用 read() 方法时,需要传  encoding="utf-8-sig" 参数
  • 最常见的操作就是 get(section,option,fallback="默认值") ,获取某个option的值,当然也可以传个 fallback ,当你的option不存在的时候,就会返回fallback的值

configparser封装类

为了更好的复用configparser,我们将常用的方法写成一个封装类

 #!/usr/bin/env python
# -*- coding: utf-8 -*- """
__title__ = 操作配置文件工具类
""" import configparser class ConfigUtil:
# 实例化configparser
config = configparser.ConfigParser() def read(self, filename):
"""
读取配置文件
:param filename: 配置文件路径
"""
self.config.read(filename, encoding="utf-8-sig") def get(self, _options, _section='server'):
"""
获取某个options值
:param _options: option
:param _section: section
"""
try:
# 方式一:调用方法
value = self.config.get(section=_section, option=_options, fallback="默认值,key不存在则返回此值") # 方式二:索引
value = self.config[_section][_options]
except Exception as e:
print("没有获取到值")
value = None
return value def get_options_key_value(self, _section):
"""
以列表(name,value)的形式返回section中的每个值
:param _section: 某个section
:return: list[tuple(key,value)]
"""
return self.config.items(_section) def get_all_section(self):
"""
获取所有section
"""
return self.config.sections() def get_options_by_section(self, _section):
"""
获取section下所有可用options
"""
# 方式一
keys = []
for _options in self.config[_section]:
keys.append(_options) # 方式二(推荐)
keys = self.config.options(_section)
return keys def assert_section_in_config(self, _section):
"""
判断section是否存在
:param _section: 需要判断的section
"""
return _section in self.config def assert_options_in_section(self, _section, _options):
"""
判断options是否存在某个section中
:param _section: 某个section
:param _options: 需要判断的options的key值
"""
return _options in self.config[_section] configUtil = ConfigUtil() if __name__ == '__main__':
filename = 'F:/imocInterface/config/server.ini'
configUtil.read(filename)
print(configUtil.get("username"))
print(configUtil.get_all_section())
print(configUtil.assert_section_in_config("server"))
print(configUtil.get_options_by_section("server"))
print(configUtil.assert_options_in_section("server", "usernsame"))
print(configUtil.get_options_key_value("server"))

python接口自动化测试 - configparser配置文件解析器详细使用的更多相关文章

  1. Python标准组件ConfigParser配置文件解析器,保存配置时支持大写字母的方法

    虽然自己已经改用xml作为配置文件首选格式了,但是有时候还是需要解析ini.cfg文件(为了兼容早期版本或者其他作者的软件). 基本上Python自带的ConfigParser足够应对了,但是美中不足 ...

  2. python configparser配置文件解析器

    一.Configparser 此模块提供实现基本配置语言的ConfigParser类,该语言提供类似于Microsoft Windows INI文件中的结构.我们经常会在一些软件安装目录下看到.ini ...

  3. Python接口自动化测试框架实战 从设计到开发

    第1章 课程介绍(不要错过)本章主要讲解课程的详细安排.课程学习要求.课程面向用户等,让大家很直观的对课程有整体认知! 第2章 接口测试工具Fiddler的运用本章重点讲解如何抓app\web的htt ...

  4. 基于Python接口自动化测试框架+数据与代码分离(进阶篇)附源码

    引言 在上一篇<基于Python接口自动化测试框架(初级篇)附源码>讲过了接口自动化测试框架的搭建,最核心的模块功能就是测试数据库初始化,再来看看之前的框架结构: 可以看出testcase ...

  5. golang开发:类库篇(四)配置文件解析器goconfig的使用

    为什么要使用goconfig解析配置文件 目前各语言框架对配置文件书写基本都差不多,基本都是首先配置一些基础变量,基本变量里面有环境的配置,然后通过环境变量去获取该环境下的变量.例如,生产环境跟测试环 ...

  6. parseConf(配置文件解析器)

    /****************************************************************************** * * parseConf(配置文件解析 ...

  7. Python模块之: ConfigParser 配置文件读取

    Python模块之: ConfigParser 配置文件读取   ConfigParser用于读写类似INI文件的配置文件,配置文件的内容可组织为组,还支持多个选项值(option-value)类型. ...

  8. python接口自动化测试二十七:密码MD5加密 ''' MD5加密 ''' # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str = 'asdas89799,.//plrmf' # 创建md5对象 hl = hashlib.md5() # Tips # 此处必须声明encode # 若写法为

    python接口自动化测试二十七:密码MD5加密   ''' MD5加密 '''# 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作import has ...

  9. python接口自动化测试七:获取登录的Cookies

    python接口自动化测试七:获取登录的Cookies,并关联到下一个请求   获取登录的cookies:loginCookies = r.cookies 把获取到的cookies传入请求:cooki ...

随机推荐

  1. 字符串和While循环

    字符串是以单引号或双引号括起来的任意文本 创建字符串 str1 = "shaoge is a good man!" 字符串运算 字符串连接 str6 = "shaoge ...

  2. msbuild 项目文件常用判断条件

    在写项目文件的时候,需要根据不同的条件定义或执行不同的代码,有一些比较常使用的判断,本文收藏起来,方便大家找 在 msbuild 的项目文件 cspoj 或 xx.target 等文件里面,可以使用 ...

  3. HDU - 5015 233 Matrix (矩阵快速幂)

    In our daily life we often use 233 to express our feelings. Actually, we may say 2333, 23333, or 233 ...

  4. IDEA比较实用的插件之翻译插件(Translation)

    插件名称:Translation 安装步骤:Mac 2019.2的IDEA安装步骤如下 InteIIij IDEA --> Preference --> Other Setting --& ...

  5. 前端——CSS选择器

    目录 前端CSS CSS三种引入方式 CSS标签选择器 基本选择器 1.元素选择器 2.类选择器 3.id选择器 4.通用选择器 组合选择器 1.后代选择器 空格 2.儿子选择器 > 3.毗邻选 ...

  6. 浅谈月薪3万 iOS程序员 的职业规划与成长!(进阶篇)

    前言: 干了这么多年的iOS,虽然接触了许多七七八八的东西.技术,但是感觉本身iOS却没有什么质的飞越,可能跟自己接触的项目深度有关,于是决定在学习其他技术的同时,加强自己在iOS方面的学习,提高自己 ...

  7. mysql中information_schema.columns字段说明

    1. 获取所有列信息(COLUMNS) SELECT  *  FROM information_schema.COLUMNS WHERE  TABLE_SCHEMA='数据库名';  COLUMNS表 ...

  8. 016 Ceph的集群管理_2

    一.Ceph集群的运行状态 集群状态:HEALTH_OK,HEALTH_WARN,HEALTH_ERR 1.1 常用查寻状态指令 [root@ceph2 ~]#    ceph health deta ...

  9. 虚拟DOM学习与总结

    虚拟DOM 虚拟DOM简而言之就是,用JS去按照DOM结构来实现的树形结构对象,一般称之为虚拟节点(VNode) 优点:解决浏览器性能问题 ,真实DOM频繁排版与重绘的效率是相当低的,虚拟DOM进行频 ...

  10. 类加载器在Tomcat中的应用

    之前有文章已经介绍过了JVM中的类加载机制,JVM中通过类加载加载class文件,通过双亲委派模型完成分层加载.实际上类加载机制并不仅仅是在JVM中得以运用,通过影响字节码生成和类加载器目前已经有了许 ...