Python使用PyYAML库读写yaml文件的方法

  • Post category:Python

当我们需要对一些配置文件进行读取或者生成的时候,一种流行的选择是 yaml 文件。而 Python 有一个非常方便的库 PyYAML,可以帮助我们使用 Python 读写 yaml 文件。

安装 PyYAML

在使用 PyYAML 之前,需要先安装库。通过 pip 命令可以轻松的安装 PyYAML。

pip install PyYAML

YAML 文件的基本语法

在深入学习 PyYAML 之前,让我们先简要了解一下 YAML 文件的基本语法。YAML 本质上是标识元素层次结构的纯文本格式。它以缩进的方式展示属性之间的嵌套关系和层次结构。比如,一份简单的 YAML 文件可能是这样的:

database:
    host: localhost
    port: 3306
    username: root
    password: password

logging:
    level: info
    format: '%(asctime)s - %(levelname)s - %(message)s'

文件中定义了两个顶级属性:databaselogging。它们都包含了一个或多个子属性。属性之间的关系通过缩进表示。

使用 PyYAML 读取 YAML 文件

接下来,我们将学习使用 PyYAML 读取 YAML 文件的方法。使用 PyYAML 读取 YAML 文件非常简单。下面是一个基本的代码示例:

import yaml

with open('配置文件.yaml', 'r') as file:
    yaml_data = yaml.load(file, Loader=yaml.FullLoader)

print(yaml_data)

代码中,我们首先使用标准的 open() 函数打开要读取的 YAML 文件,并指定文件模式为 r,即读取。将文件对象传给 yaml.load() 函数,该函数会返回 YAML 文件的解析结果。解析结果是一个 Python 字典对象,其中包含了文件中定义的所有属性和值。

使用 PyYAML 写入 YAML 文件

除了读取 YAML 文件之外,使用 PyYAML 也可以写入 YAML 文件。下面是一个基本的示例代码:

import yaml

yaml_data = {
    'database': {
        'host': 'localhost',
        'port': 3306,
        'username': 'root',
        'password': 'password',
    },
    'logging': {
        'level': 'info',
        'format': '%(asctime)s - %(levelname)s - %(message)s',
    },
}

with open('配置文件.yaml', 'w') as file:
    yaml.dump(yaml_data, file)

代码中,我们定义了一个 Python 字典对象 yaml_data,包含了要写入 YAML 文件中的所有属性和值。随后,使用标准的 open() 函数打开文件,指定模式为 w,即写入。将文件对象传给 yaml.dump() 函数,并将要写入的数据作为第一个参数传入。函数会自动将数据转换为 YAML 格式,并写入到文件中。

以上就是使用 PyYAML 读写 YAML 文件的方法。在实际的开发中,YAML 文件可以承载各种配置信息,如数据库连接信息、日志格式等,成为一个技术实现方案的映射载体。