import os import yaml # 读取yaml的数据 def read_yaml(): with open(os.getcwd()+"/extract.yaml",encoding="utf-8",mode="r") as f: value = yaml.load(f,yaml.FullLoader) return value # 写入数据到yaml文件里面.注意下方的mode,等于a为追加,等于w为清空后重写 def write_yaml(data): with open(os.getcwd()+"/extract.yaml",encoding="utf-8",mode="a") as f: yaml.dump(data,stream=f,allow_unicode=True) # 清空.mode="w" def clear_yaml(): with open(os.getcwd()+"/extract.yaml",encoding="utf-8",mode="w") as f: f.truncate()
时间: 2023-06-13 22:06:24 浏览: 181
这段代码是用来读取和写入 YAML 文件的。具体来说,它包括三个函数:
- `read_yaml()`:用于读取 YAML 文件,返回一个 Python 对象;
- `write_yaml(data)`:用于将 Python 对象写入到 YAML 文件中,参数 `data` 为要写入的 Python 对象;
- `clear_yaml()`:用于清空 YAML 文件。
其中,`yaml.load()` 用于将 YAML 文件转换为 Python 对象,`yaml.dump()` 用于将 Python 对象转换为 YAML 格式并写入文件。`os.getcwd()` 返回当前 Python 脚本所在的目录。
相关问题
这段代码的作用是什么?import os import yaml class YamlUtil: # 写入yaml文件(将接口的返回数据中的某一字段写入yaml文件当中) def write_yaml(self, data): with open(os.getcwd() + "./extract.yaml", encoding="utf-8", mode="a+") as f: yaml.dump(data, stream=f, allow_unicode=True) # 读取yaml文件(读取写入yaml文件的的接口返回参数) def read_yaml(self, key): with open(os.getcwd() + "./extract.yaml", encoding="utf-8", mode="r") as f: value = yaml.load(stream=f, Loader=yaml.FullLoader) return value[key] # 清空yaml文件(用例执行前后清空 用在装饰器fixtrue中) def clean_extract_yaml(self): with open(os.getcwd() + "./extract.yaml", encoding="utf-8", mode="w") as f: f.truncate() # 读取yaml格式的测试用例数据 def read_case_yaml(self, case_path): with open(case_path, encoding="utf-8", mode="r") as f: value = yaml.load(stream=f, Loader=yaml.FullLoader) return value
这段代码是一个 Yaml 文件读写工具类 YamlUtil,用于读取、写入和清空 Yaml 文件。它使用了 Python 中的 os 和 yaml 库。该类包含了以下四个方法:
1. write_yaml:将接口返回数据中的某一字段写入 Yaml 文件中。
2. read_yaml:读取写入 Yaml 文件的接口返回参数。
3. clean_extract_yaml:清空 Yaml 文件,用于用例执行前后的清理,常用于装饰器 fixture 中。
4. read_case_yaml:读取 Yaml 格式的测试用例数据,用于接口自动化测试。
在具体实现时,该类会根据传入的文件路径和 Yaml 数据的读写操作,使用 with open() 语句打开文件,并通过 yaml.load() 和 yaml.dump() 方法读取和写入文件中的 Yaml 数据,最终返回读取到的数据或进行写入操作。
def read_testcase_yaml(yaml_path): with open(os.getcwd()+yaml_path, encoding="utf-8") as f: value = yaml.load(stream=f, Loader=yaml.FullLoader) return value改进一下
在打开文件时,您可以使用 `os.path.join` 函数来连接当前工作目录和 YAML 文件的相对路径。这样可以避免硬编码当前工作目录,而使代码更具可移植性。例如:
```python
import os
def read_testcase_yaml(yaml_path):
abs_path = os.path.join(os.getcwd(), yaml_path)
with open(abs_path, encoding="utf-8") as f:
value = yaml.load(stream=f, Loader=yaml.FullLoader)
return value
```
这个函数会使用 `os.getcwd()` 获取当前工作目录的路径,然后使用 `os.path.join` 函数将该路径和 YAML 文件的相对路径连接起来。最后,函数会打开该路径下的 YAML 文件并返回其内容。
阅读全文