当我们需要对一些配置文件进行读取或者生成的时候,一种流行的选择是 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'
文件中定义了两个顶级属性:database
和 logging
。它们都包含了一个或多个子属性。属性之间的关系通过缩进表示。
使用 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 文件可以承载各种配置信息,如数据库连接信息、日志格式等,成为一个技术实现方案的映射载体。