yaml文件的读写和清除

接口自动化测试框架的封装,一般通过一个关联的yaml文件实现

1.新建一个yaml文件

2.再建一个py文件,用户实现对yaml的读写和清除操作

基本思路就是实现将某值写入yaml文件,其他的py文件使用时可直接从yaml文件中提取,无需再使用将该值变成全局变量的操作了。

#test-yaml.py内容
import os
import yaml
class Yamlutil:
    #读取yaml文件
    def read_yaml(self):
        with open(os.getcwd()+"/extract.yml",mode='r',encoding='utf-8') as f:
            value=yaml.load(stream=f,Loader=yaml.FullLoader)
            return value;
    #写入yaml文件
    def write_yaml(self):
        with open(os.getcwd()+"/extract.yml",mode='w',encoding='utf-8') as f:
            yaml.dump(data=data,stream=f,allow_unicode=True)
    #清除文件
    def clear_yaml(self):
        with open(os.getcwd()+"/extract.yaml",mode='w',encoding='utf-8') as f:
            f.truncate()
            
            

---------

with open as f的用法:

with open('文件地址',mode='文件打开的模式',encoding='编码形式')

上述代码中os.getcwd() 方法用于返回当前工作目录,详细可查os库内函数用法

mode的取值如下:

r:    以只读方式打开文件。文件的指针将会放在文件的开头。这是**默认模式**。
rb: 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+: 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w:    打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb:    以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+:    打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a:    打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab:    以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:    打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

yaml基础知识;

图盗用:yaml文件读取load()、写入dump() - 习久性成 - 博客园 

读取yaml、yml文件:load()

load(stream=f,Loader=yaml.FullLoader)

①BaseLoader:载入大部分的基础YAML
②SafeLoader:载入YAML的子集,推荐在不可信的输入时使用
③FullLoader:这是默认的载入方式,载入全部YAML
④UnsafeLoader:老版本的载入方式

写入yaml、yml文件:dump()

yaml.dump(data=data,stream=f,encoding='utf-8',allow_unicode=True)

data=,stream=可省略,直接写值

当data数据中有汉字时,加上: encoding='utf-8',allow_unicode=True

例如:

import os

import yaml

yaml_dict = {
    "user": "general",
    "country": "China",
    "gender": "male",
    "address": "北京"
}
yaml_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'a.yml')
with open(yaml_dir, 'w', encoding='utf-8', ) as f:
    yaml.dump(yaml_dict, f, encoding='utf-8', allow_unicode=True)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值