Python 使用 ini&yaml 配置文件
配置文件常用的有2种,第一种是*.ini文件,实际上*.ini文件是Initialization file的缩写,即为初始化文件,是Windows系统配置文件所采用的存储格式,统管Windows的各项配置,用户可以通过修改对应的*.ini文
前言
配置文件常用的有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')
了解
添加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'))
注意点
[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 pyyamlyaml特点
大小写敏感
使用缩进表示层级关系
禁止使用tab键,只能使用空格键
缩进长度无限制,只要是对齐的就算是同一个层级
字符串可以不用引号标注
使用#进行注释
一个yaml文件对外只能有一个类型(读出来要么是dict,要么是list)
读取特点,一次性全部读取
读取出来的是python对象,可以直接使用
支持数据类型
字典 通过(:)来连接,冒号后面要带一个空格
key: val列表 使用连接字符(-)表示,- 后面要带一个空格
- helloscalar、纯量
字符串、数字、布尔值、不可变数据类型
yaml文件写法案例
value为字典
key1: key1: val1 key2: val2
value为列表
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