Python 读取 yaml 文件中的数据

在自动化框架搭建中,一些配置文件(例如:数据库账号、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__))),"coco128.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

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

在这里插入图片描述

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


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

import yaml
yaml_path=os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))),"coco128.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}不存在")

运行后,我们就得到了想要的 logger 中的 description 了:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33833327/article/details/130488873