python接口自动化测试 - configparser配置文件解析器详细使用

简介: python接口自动化测试 - configparser配置文件解析器详细使用

configparser简介


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

 

ini文件相关知识


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


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


操作ini文件


认准三部曲

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

 

基础代码

ini文件示例

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


包含知识点

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

 

configparser封装类


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

1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 
 4 """
 5 __title__  = 操作配置文件工具类
 6 """
 7 
 8 import configparser
 9 
10 
11 class ConfigUtil:
12     # 实例化configparser
13     config = configparser.ConfigParser()
14 
15     def read(self, filename):
16         """
17         读取配置文件
18         :param filename: 配置文件路径
19         """
20         self.config.read(filename, encoding="utf-8-sig")
21 
22     def get(self, _options, _section='server'):
23         """
24         获取某个options值
25         :param _options: option
26         :param _section: section
27         """
28         try:
29             # 方式一:调用方法
30             value = self.config.get(section=_section, option=_options, fallback="默认值,key不存在则返回此值")
31 
32             # 方式二:索引
33             value = self.config[_section][_options]
34         except Exception as e:
35             print("没有获取到值")
36             value = None
37         return value
38 
39     def get_options_key_value(self, _section):
40         """
41         以列表(name,value)的形式返回section中的每个值
42         :param _section: 某个section
43         :return: list[tuple(key,value)]
44         """
45         return self.config.items(_section)
46 
47     def get_all_section(self):
48         """
49         获取所有section
50         """
51         return self.config.sections()
52 
53     def get_options_by_section(self, _section):
54         """
55         获取section下所有可用options
56         """
57         # 方式一
58         keys = []
59         for _options in self.config[_section]:
60             keys.append(_options)
61 
62         # 方式二(推荐)
63         keys = self.config.options(_section)
64         return keys
65 
66     def assert_section_in_config(self, _section):
67         """
68         判断section是否存在
69         :param _section: 需要判断的section
70         """
71         return _section in self.config
72 
73     def assert_options_in_section(self, _section, _options):
74         """
75         判断options是否存在某个section中
76         :param _section: 某个section
77         :param _options: 需要判断的options的key值
78         """
79         return _options in self.config[_section]
80 
81 
82 configUtil = ConfigUtil()
83 
84 if __name__ == '__main__':
85     filename = 'F:/imocInterface/config/server.ini'
86     configUtil.read(filename)
87     print(configUtil.get("username"))
88     print(configUtil.get_all_section())
89     print(configUtil.assert_section_in_config("server"))
90     print(configUtil.get_options_by_section("server"))
91     print(configUtil.assert_options_in_section("server", "usernsame"))
92     print(configUtil.get_options_key_value("server"))
相关文章
|
5月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
708 0
|
5月前
|
数据采集 存储 JavaScript
解析Python爬虫中的Cookies和Session管理
Cookies与Session是Python爬虫中实现状态保持的核心。Cookies由服务器发送、客户端存储,用于标识用户;Session则通过唯一ID在服务端记录会话信息。二者协同实现登录模拟与数据持久化。
|
6月前
|
JSON 缓存 开发者
淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战
本文详解淘宝开放平台taobao.item_get接口对接全流程,涵盖参数配置、MD5签名生成、Python企业级代码实现及高频问题排查,提供可落地的实战方案,助你高效稳定获取商品数据。
|
6月前
|
存储 大数据 Unix
Python生成器 vs 迭代器:从内存到代码的深度解析
在Python中,处理大数据或无限序列时,迭代器与生成器可避免内存溢出。迭代器通过`__iter__`和`__next__`手动实现,控制灵活;生成器用`yield`自动实现,代码简洁、内存高效。生成器适合大文件读取、惰性计算等场景,是性能优化的关键工具。
349 2
|
6月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
1717 0
|
6月前
|
机器学习/深度学习 JSON Java
Java调用Python的5种实用方案:从简单到进阶的全场景解析
在机器学习与大数据融合背景下,Java与Python协同开发成为企业常见需求。本文通过真实案例解析5种主流调用方案,涵盖脚本调用到微服务架构,助力开发者根据业务场景选择最优方案,提升开发效率与系统性能。
1605 0
机器学习/深度学习 算法 自动驾驶
1206 0
|
6月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
1106 0
|
6月前
|
数据可视化 Linux iOS开发
Python脚本转EXE文件实战指南:从原理到操作全解析
本教程详解如何将Python脚本打包为EXE文件,涵盖PyInstaller、auto-py-to-exe和cx_Freeze三种工具,包含实战案例与常见问题解决方案,助你轻松发布独立运行的Python程序。
1636 2
|
6月前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
466 0

推荐镜像

更多