五分钟掌握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还有高阶方法,例如:实例化的设置,高级定制,需要更深入学习的小伙伴可查阅对应模块手册。

 

posted @ 2024-03-21 15:57  潘_谈  阅读(73)  评论(0编辑  收藏  举报