当我们需要在Python程序中读取或写入YAML文件时,可以使用PyYAML库,它是一个流行的YAML解析器和发生器。
以下是Python读写YAML文件的完整攻略:
安装PyYAML库
在开始之前需要确保你的电脑上已经安装了PyYAML库。如果没有安装,可以在命令行中使用pip进行安装:
pip install pyyaml
读取YAML文件
读取YAML文件时,我们可以使用PyYAML库中的load
函数将YAML文件中的数据转换为Python数据类型,Python数据类型可以是列表、字典、字符串等基本数据类型。
以下是一个读取YAML文件的示例:
import yaml
# 打开yaml文件
with open('test.yaml', 'r') as f:
data = yaml.load(f, Loader=yaml.FullLoader)
# 输出yaml文件中的内容
print(data)
在上述代码中,我们使用open('test.yaml', 'r')
函数打开yaml文件,并使用yaml.load()
函数将文件中的内容读取到Python中。其中,yaml.FullLoader
是YAML解析器的一个安全选项,它避免了一些潜在的安全问题。
写入YAML文件
将Python数据类型写入YAML文件时,需要使用dump
函数将Python数据类型转换为YAML格式,然后写入文件中。以下是一个写入YAML文件的示例:
import yaml
# 要写入文件的数据
data = {
'name': '张三',
'age': 18,
'hobby': ['篮球', '游泳', '旅游']
}
# 将数据写入yaml文件
with open('test.yaml', 'w', encoding='utf-8') as f:
yaml.dump(data, f, default_flow_style=False, allow_unicode=True)
在上述代码中,我们使用yaml.dump()
函数将Python字典类型的数据写入YAML文件中。其中,default_flow_style=False
表示使用块样式,allow_unicode=True
表示允许使用Unicode字符。
示例说明
以下是两个示例说明,一个是读取YAML文件,另一个是写入YAML文件。
示例1:读取YAML文件
假设有一个YAML文件data.yaml
,内容如下:
- name: 张三
age: 18
hobby:
- 篮球
- 游泳
- 旅游
读取YAML文件的Python代码如下:
import yaml
# 读取yaml文件
with open('data.yaml', 'r') as f:
data = yaml.load(f, Loader=yaml.FullLoader)
# 输出yaml文件中的内容
print(data)
输出结果为:
[{'name': '张三', 'age': 18, 'hobby': ['篮球', '游泳', '旅游']}]
示例2:写入YAML文件
假设要将以下数据写入YAML文件data.yaml
:
data = {
'name': '张三',
'age': 18,
'hobby': ['篮球', '游泳', '旅游']
}
将数据写入YAML文件的Python代码如下:
import yaml
# 要写入文件的数据
data = {
'name': '张三',
'age': 18,
'hobby': ['篮球', '游泳', '旅游']
}
# 将数据写入yaml文件
with open('data.yaml', 'w', encoding='utf-8') as f:
yaml.dump(data, f, default_flow_style=False, allow_unicode=True)
以上代码执行完成后,data.yaml
文件中的内容如下:
age: 18
hobby:
- 篮球
- 游泳
- 旅游
name: 张三
可以看到,写入的数据已经以YAML格式写入到了data.yaml
文件中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python读写yaml文件 - Python技术站