在自动化框架搭建中,一些配置文件(例如:数据库账号、url,日志级别等...)会经常的用到,所以我们需要一个存放这些参数的文件,并从中读取和写入。当然,存放参数除了用yaml,像ini文件、json文件、excel文件也是可以的,看个人选择。本文就介绍yaml文件的操作方法。

1、准备一个yaml文件,并存放一些测试数据

2、准备好数据后,就新建一个py文件,用于编写操作yaml文件的脚本。在开始之前我们需要导入yaml库 import yaml

3、读取yaml文件中所有数据,首先需要使用open方法去打开文件,再使用load方法将数据转化为字典,具体操作如下:

import yaml
yaml_path=os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"test_yaml.yaml")

def read_yaml_all():
    try:
        # 打开文件
        with open(yaml_path,"r",encoding="utf-8") as f:
            data=yaml.load(f,Loader=yaml.FullLoader)
            return data
    except:
        return None

运行之后,我们将得到整个文件的数据,以字典的形式展示

这时候,我只想取出 base_data中的login_name,那么应该怎么做呢??? 不急,继续往下看!

4、既然返回的数据是字典形式,那只需要根据key 就能得到对应的value了

import yaml
yaml_path=os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"test_yaml.yaml")
def read_yaml(n,k):
    # 打开文件
    with open(yaml_path,"r",encoding="utf-8") as f:
        data=yaml.load(f,Loader=yaml.FullLoader)
        try:
            #判断传入的n是否在存在
            if n in data.keys():
                return data[n][k]
            else:
                print(f"n:{n}不存在")
        except Exception as e :
            print(f"key值{e}不存在")

运行后,我们就得到了想要的base_data中的login_name了:

 以上就是yaml文件的读取操作了,关于写入操作,后面再单独讲。

更多推荐

python-读取yaml文件中的数据