python文件操作——YAML库
一、yaml安装
使用命令pip install pyyaml进行安装
二、yaml文件格式与语法规则
yaml文件支持输出列表,字典,嵌套,使用空格来区分层级关系。
一、注释 #
使用# 来填写注释
# 这是一个yaml文件
二、 key:value
使用key:value,之间用空格分开,多个使用空格进行区分
# 注释 data: 123 data2: 456
输出为:{'data': 123, 'data2': 456}
三、短横(-)表示列表,用空格进行分隔
- data - data2
输出为:['data', 'data2']
四、嵌套:使用缩进展示层级关系
列表内嵌套字典:为- key:value,以下为例子
- a: 1 - b: 2
输出为[{'a': 1}, {'b': 2}]
字典嵌套字典:key:key: value 注意这个时候需要有缩进
parent_key: child_key1: value1 child_key2: value2
输出为{'parent_key': {'child_key1': 'value1', 'child_key2': 'value2'}}
列表嵌套列表:使用短横(-)以缩进进行使用
代码如下:
- - data - data2 - data3
输出:[['data', 'data2', 'data3']]
总结:
这些是YAML的基本语法规则。使用这些规则,你可以创建具有层次结构和灵活性的数据表示。请注意,缩进、空格和换行符在YAML中非常重要,因为它们用于表示结构和层次关系。
大小写敏感,Yam文件中true和false不区分大小写,其他区分大小写
使用缩进表示层级关系,缩进时不支持使用Tab键缩进,只允许使用空格。不需要关注缩进的空格数目,只要相同层级的元素左侧对齐即可
多个文件用"- – -"来区分
三、读取yaml文件:
PyYAML提供了load和safe_load这两个函数来将YAML数据加载为Python对象。它们之间的主要区别在于安全性。
load函数:load函数用于将YAML数据加载为Python对象。它接受一个文件对象或包含YAML数据的字符串作为输入,并返回相应的Python对象。load函数支持YAML中的所有功能,包括自定义类型和标记。
safe_load函数:safe_load函数也用于将YAML数据加载为Python对象,但它具有更多的安全性措施。safe_load函数只支持加载基本的Python数据类型,如字典、列表、字符串、整数、浮点数等。它不支持自定义类型和标记。、、
import yaml
with open('data.YML','r', encoding='utf-8') as f:
data = yaml.safe_load(f.read()) # safe_load将读取内容转为json格式
data11 = yaml.load(f.read(), Loader=yaml.FullLoader) # load读取文件需要设置FullLoader解析哪些标签
print(data)
四、yaml写入
使用yaml.dump进行写入,代码如下
import yaml
data = {
'name': '小明',
'age': 18,
'sex': '男'
}
with open('data.YML','a+', encoding='utf-8') as f:
# data = yaml.safe_load(f.read()) # safe_load将读取内容转为json格式
yaml.dump(data, f, allow_unicode=True)
print(data)
作者:飞翔的小飞象