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)

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pythonyaml文件格式是一种用于序列化和反序列化数据的文件格式。YAML是一种人类可读的数据序列化格式,它使用简洁的语法来表示数据结构。YAML文件可以包含各种数据类型,包括字符串、数字、布尔值、列表和字典等。在Python中,可以使用yaml模块来读取和保存yaml文件。通过导入yaml模块,可以使用官方的导入方法来兼容Windows和Linux平台。使用yaml模块的load函数可以读取yaml文件的内容,并将其转换为Python对象。例如,可以使用以下代码读取一个yaml文件并打印其内容: ```python import yaml with open("test.yaml", "r") as yaml_file: data = yaml.load(yaml_file) print("data_type:", type(data)) print("data_content:\n", data) ``` 这段代码使用了yaml模块的load函数来读取test.yaml文件的内容,并将其转换为Python对象。然后,可以通过打印data的类型和内容来查看读取到的数据。 #### 引用[.reference_title] - *1* [yaml——python数据序列化文件格式解析包的介绍和使用](https://blog.csdn.net/ZH13114130815/article/details/126930216)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [python基础——python解析yaml类型文件](https://blog.csdn.net/weixin_54696666/article/details/115034027)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值