python 中yaml文件用法大全


Posted in Python onJuly 04, 2021

yaml简单介绍

YAML是一种标记语言,它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件、倾印调试内容、文件大纲。

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进不允许使用tab,只允许空格
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • '#'表示注释

yaml数组

yaml语音数组很简单,使用短横线 ‘-' 作为数组的开始标志。

一维数组

import yaml
#三个双引号的作用是字符换行不需要加换行符
y = """
- 111
- 222
- 333
"""
# y等同于y1
y1 = '- 111\n- 222\n- 333'
config = yaml.safe_load(y)
config

out: [111, 222, 333]

二维数组

二维数组就是按照缩进关系来的,更多维数组道理相同,具体看下面的代码:

import yaml
y = """
-
  - 111
  - 222
  - 333
-
  - 111
  - 222
  - 333
"""
config = yaml.safe_load(y)
config

out : [[111, 222, 333], [111, 222, 333]]

yaml字典

简单字典形式

yaml字典的模式是Key: value 形式,中间使用冒号+空格进行连接

import yaml
y = """
'0': 1
'1': 2
'2': 3
"""
config = yaml.safe_load(y)
config

out: {‘0': 1, ‘1': 2, ‘2': 3}

复杂字典形式

下面的例子中,我们使用一个嵌套字典,就是字典里面的value值又是一个字典

import yaml
y1 = """
object1:
  'key1': 0
  'key2': 1
object2:
  'key1': 0
  'key2': 1  
"""
config = yaml.safe_load(y1)
config

out: {‘object1': {‘key1': 0, ‘key2': 1}, ‘object2': {‘key1': 0, ‘key2': 1}}

yaml 复杂结构 数组里面嵌入字典

import yaml
y1 = """
-
  'key1': 0
  'key2': 1
-
  'key1': 0
  'key2': 1
"""
config = yaml.safe_load(y1)
config

out: [{‘key1': 0, ‘key2': 1}, {‘key1': 0, ‘key2': 1}]

字典里面嵌入数组

import yaml
y1 = """
object1:
  - 111
  - 222
object2:
  - 111
  - 222
"""
config = yaml.safe_load(y1)
config

out : {‘object1': [111, 222], ‘object2': [111, 222]}

yaml读取和写入

YAML.yml文件内容:

python 中yaml文件用法大全

# yaml文件读取
import yaml
with open('YAML.yml','r')as f:
    config = yaml.safe_load(f)
config

out:[0, 111, 222]

# yaml写入文件
config = [1,2,3]
with open('YAML1.yml','w')as f:
    yaml.dump(config,f)

YAML1.yml文件内容:

python 中yaml文件用法大全

资料参考:

 YAML菜鸟教程

总结

yaml文件是项目配置常用的配置文件,通常我们会将超参数和一些常用值放在配置文件中,方便修改,读取也十分的方便。

到此这篇关于python 中yaml文件用法大全的文章就介绍到这了,更多相关python 中yaml文件用法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 流程控制实例代码
Sep 25 Python
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 Python
详解Python中for循环的使用
Apr 14 Python
PyQt5每天必学之布局管理
Apr 19 Python
Pandas删除数据的几种情况(小结)
Jun 21 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
用Python批量把文件复制到另一个文件夹的实现方法
Aug 16 Python
python3实现高效的端口扫描
Aug 31 Python
python3 tkinter实现添加图片和文本
Nov 26 Python
简单了解Django ORM常用字段类型及参数配置
Jan 07 Python
Python如何读写字节数据
Aug 05 Python
python文件名批量重命名脚本实例代码
Apr 22 Python
python3实现常见的排序算法(示例代码)
用Python编写简单的gRPC服务的详细过程
Jul 04 #Python
python中__slots__节约内存的具体做法
Jul 04 #Python
python中Matplotlib绘制直线的实例代码
Jul 04 #Python
C站最全Python标准库总结,你想要的都在这里
Python实现列表拼接和去重的三种方式
Jul 02 #Python
简单且有用的Python数据分析和机器学习代码
Jul 02 #Python
You might like
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
php实现微信公众平台账号自定义菜单类
2014/12/02 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
PHP中的流(streams)浅析
2015/07/02 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
thinkPHP实现MemCache分布式缓存功能
2016/03/23 PHP
javascript 控制弹出窗口
2007/04/10 Javascript
javascript css在IE和Firefox中区别分析
2009/02/18 Javascript
js验证模型自我实现的具体方法
2013/06/21 Javascript
JS定时器实例详细分析
2013/10/11 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
vue + socket.io实现一个简易聊天室示例代码
2017/03/06 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
十个Python程序员易犯的错误
2015/12/15 Python
python实现生命游戏的示例代码(Game of Life)
2018/01/24 Python
python实现京东秒杀功能
2018/07/30 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
Python队列、进程间通信、线程案例
2019/10/25 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
口腔工艺技术专业毕业生自荐信
2013/09/27 职场文书
物业管理毕业生的自我评价
2014/02/17 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
宣传口号大全
2014/06/16 职场文书
入党积极分子党小组意见
2015/06/02 职场文书
上班旷工检讨书
2015/08/15 职场文书
只用40行Python代码就能写出pdf转word小工具
2021/05/31 Python