【GUI自动化测试】YAML 配置文件应用:从语法解析到 Python 读写

文章目录


一、关于窗口

官⽅⽂档:https://pyyaml.org/wiki/PyYAMLDocumentation

YAML是⼀种数据序列化语⾔,⽤于以⼈类可读的形式存储信息。它最初代表"YetAnotherMarkup Language",但后来更改为"YAMLAin'tMarkupLanguage"(YAML不是⼀种标记语⾔),以区别于真正的标记语⾔。

它类似于XML和JSON⽂件,但使⽤更简洁的语法。

特点:

YAML是一种非常简单的基于文本的人类可读的语言,用于在人和计算机之间交换数据。

YAML是不是一种编程语言。它主要用于存储配置信息。

YAML的缩进就像 Python的缩进一样优雅。

YAML还减少了JSON和XML文件中的大部分"噪音"格式,例如引号、方括号和大括号。

注意:

  • YAML是区分大小写。
  • YAML 不允许使用制表符Tab键,(你之所按下Tab YAML仍能使用,是因为编辑器被配置为按下Tab键会导致插入适当数量的空格)。
  • YAML 是遵循严格缩进的。

二、YAML介绍

2.1 菜单介绍

YAML文件的后缀名是.yaml或.yml),本着能少写不多写的原则,我们常用的是[.ymlyaml中支持不同数据类型,但在写法上稍有区别,详见下:

以下是提取的 YAML 和 JSON 文本内容(按数据类型分组,保留原生代码格式):

  1. 简单标量值
    YAML
yaml 复制代码
key: value

JSON

json 复制代码
{ "key": "value" }
  1. 整数和浮点数
    YAML
yaml 复制代码
int_key: 123
float_key: 123.456

JSON

json 复制代码
{ "int_key": 123, "float_key": 123.456 }
  1. 布尔值
    YAML
yaml 复制代码
bool_key: true

JSON

json 复制代码
{ "bool_key": true }
  1. 字符串
    YAML
yaml 复制代码
string_key: "This is a string"

JSON

json 复制代码
{ "string_key": "This is a string" }
  1. 列表
    YAML
yaml 复制代码
list_key:
  - item1
  - item2
  - item3

JSON

json 复制代码
{ "list_key": ["item1", "item2", "item3"] }
  1. 映射(字典)
    YAML
yaml 复制代码
map_key:
  sub_key1: sub_value1
  sub_key2: sub_value2

JSON

json 复制代码
{ "map_key": { "sub_key1": "sub_value1", "sub_key2": "sub_value2" } }
  1. 嵌套结构
    YAML
yaml 复制代码
nested_key:
  list_key:
    - item1
    - item2
  map_key:
    sub_key1: sub_value1
    sub_key2: sub_value2

JSON

json 复制代码
{ "nested_key": { "list_key": ["item1", "item2"], "map_key": { "sub_key1": "sub_value1", "sub_key2": "sub_value2" } } }

2.2 使⽤

yaml文件通常作为配置文件来使用,可以使用yaml)库来读取和写入(YAML 文件安装yaml库

python 复制代码
pip install PyYAML==6.0.1

创建yaml⽂件

读取和写⼊yaml⽂件

python 复制代码
import yaml

#追加写入
def write_yaml(filename, data):
    with open(filename, encoding="utf-8",mode="a+") as f :
        yaml.safe_dump(data, stream=f)

#读取
def read_yaml(filename, key):
    with open(filename, encoding="utf-8", mode="r") as f:
        data = yaml.safe_load(f)
        return data[key]

#清空
def clear_yaml(filename):
    with open(filename, encoding="utf-8", mode="w") as f:
        f.truncate()

def test_yaml():
    #写入yaml 文件
    data = {"str": "12345"}
    write_yaml("test.yaml", data)

    #读取yaml文件
    ret = read_yaml("test.yaml", "str")
    print("ret", ret)

    #清空yaml文件
    clear_yaml("test.yaml")

🚩总结

相关推荐
Doc.S3 小时前
【保姆级教程】在AutoDL容器中部署EGO-Planner,实现无人机动态避障规划
人工智能·python·信息可视化·机器人
Predestination王瀞潞3 小时前
Python3:Eighth 函数
开发语言·python
蒋星熠3 小时前
多模态技术深度探索:融合视觉与语言的AI新范式
人工智能·python·深度学习·机器学习·分类·数据挖掘·多分类
xier_ran4 小时前
Python从入门到精通:(2)Python 核心进阶教程从数据结构到面向对象
linux·windows·python·microsoft
程序员三藏4 小时前
接口自动化测试框架搭建详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
苦学编程的谢4 小时前
Redis_5_单线程模型
数据库·redis·缓存
skywalk81634 小时前
老显卡老cpu用vllm推理大模型失败Intel(R) Xeon(R) CPU E5-2643 v2
人工智能·pytorch·python·vllm
2501_915921435 小时前
iOS 虚拟位置设置实战,多工具协同打造精准调试与场景模拟环境
android·ios·小程序·https·uni-app·iphone·webview
龚礼鹏5 小时前
Android 图像显示框架三——演示demo以及解析
android·交互
QuantumLeap丶5 小时前
《Flutter全栈开发实战指南:从零到高级》- 11 -状态管理Provider
android·flutter·ios