前言
- 配置文件常用的有2种,第一种是*.ini文件,实际上*.ini文件是Initialization file的缩写,即为初始化文件,是Windows系统配置文件所采用的存储格式,统管Windows的各项配置,用户可以通过修改对应的*.ini文件来实现不同的初始化配置(仅专业人士操作)
- 第二种是yaml文件,YML文件格式是YAML (YAML Aint Markup Language)编写的文件格式,YAML是一种直观的能够被电脑识别的的数据数据序列化格式
- 那么问题来了,我们python自动化测试的过程中能使用这些配置文件吗?答案是肯定的,今天我们就来一起学习一下python如何使用*.ini文件和yaml文件。
一、配置文件类型
-
ini
-
yaml
二、ini使用
-
语法
[section1]
key1=val1
key2=val2
[section2]
key1=val1
key2=val2 -
configparser使用
- 导入包
from configparser import ConfigParser
- 实例化
conf = ConfigParser()
conf.read('test.ini', encoding="utf-8") - 掌握
- 获取所有section
sections = conf.sections()
- 获取指定section下所有的key
keys = conf.options('log1')
- 获取指定section下所有的key,value
val_list = conf.items('your_section')
- 获取指定section指定key的值
- 默认读取str
value = conf.get('your_section','key')
- 获取布尔值
booleans = conf.getboolean('your_section','key1')
- 获取数字为int
number = conf.getint('your_section','key1')
- 获取数字类型小数
float = conf.getfloat('your_section','key1')
- 默认读取str
- 获取所有section
- 了解
- 添加sections(操作内存)
conf.add_section('your_section')
- 添加key,val(操作内存)
conf.set('your_section','key22','val22')
- 删除(操作内存)
conf.remove_option('your_section', "key1")
- 写入文件
将你内存你的数据全部写入文件进行覆盖,conf初始化的时候读取的是所有对象
conf.write(fp=open(file=file_path,mode='w'))
- 添加sections(操作内存)
- 导入包
-
注意点
- [section]不能重复
- 同一个[section]key不能重复
- 等号前后不要用空格
- 默认类型为字符串
- 添加、删除、修改只是对内存进行修改,并不会修改实际文件
-
封装
from configparser import ConfigParser import os """ 继承ConfigParser类 然后初始化编码格式 """ class ReadConf(ConfigParser): def __init__(self,file_path): super().__init__() self.read(filenames=file_path,encoding='utf-8') file_path = os.path.join(os.path.dirname(__file__), 'test.ini') conf=ReadConf(file_path=file_path) #使用直接导入conf实例 from confFile.conffengzhuang import conf values = conf.options('log1') print(values) 输出:['key1', 'key2']
三、yaml文件
-
pyyaml安装
pip install pyyaml
-
yaml特点
- 大小写敏感
- 使用缩进表示层级关系
- 禁止使用tab键,只能使用空格键
- 缩进长度无限制,只要是对齐的就算是同一个层级
- 字符串可以不用引号标注
- 使用#进行注释
- 一个yaml文件对外只能有一个类型(读出来要么是dict,要么是list)
- 读取特点,一次性全部读取
- 读取出来的是python对象,可以直接使用
-
支持数据类型
- 字典
通过(:)来连接,冒号后面要带一个空格
key: val
- 列表
使用连接字符(-)表示,- 后面要带一个空格
- hello
- scalar、纯量
- 字符串、数字、布尔值、不可变数据类型
- 字典
-
yaml文件写法案例
value为字典
key1:
key1: val1
key2: val2value为列表
key2:
- list_val1
- list_val2
-
使用
- 第一步:打开文件流
file = open(file=file_path,encoding='utf-8')
- 第二步:使用yaml读取
yaml.load(stream=file,Loader=yaml.FullLoader)
- 代码演示
import yaml import os def handle_yaml(path,name): """ :param path: 文件绝对路径 :param name: .yaml文件名 :return: """ file_path = os.path.join(path,name) with open(file=file_path, encoding='utf-8') as file: vals = yaml.load(stream=file, Loader=yaml.FullLoader) return vals
- 第一步:打开文件流
欢迎来到testingpai.com!
注册 关于