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实现爬虫下载漫画示例
Feb 16 Python
跟老齐学Python之编写类之一创建实例
Oct 11 Python
python中assert用法实例分析
Apr 30 Python
Pthon批量处理将pdb文件生成dssp文件
Jun 21 Python
详解Python字符串对象的实现
Dec 24 Python
浅谈Python基础之I/O模型
May 11 Python
python线程池threadpool实现篇
Apr 27 Python
python接口自动化测试之接口数据依赖的实现方法
Apr 26 Python
python lambda表达式在sort函数中的使用详解
Aug 28 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
Python OpenCV之常用滤波器使用详解
Apr 07 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
php fsockopen中多线程问题的解决办法[翻译]
2011/11/09 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
Prototype Array对象 学习
2009/07/19 Javascript
javascript循环变量注册dom事件 之强大的闭包
2010/09/08 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
javascript scrollTop正解使用方法
2013/11/14 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
jQuery使用drag效果实现自由拖拽div
2015/06/11 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
js原生之焦点图转换加定时器实例
2016/12/12 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
详解Vue 单文件组件的三种写法
2020/02/19 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
vue+echarts+datav大屏数据展示及实现中国地图省市县下钻功能
2020/11/16 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
跟老齐学Python之集合的关系
2014/09/24 Python
Python的时间模块datetime详解
2017/04/17 Python
Python 操作文件的基本方法总结
2017/08/10 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
Python最小二乘法矩阵
2019/01/02 Python
简单了解Django项目应用创建过程
2020/07/06 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
计算机网络专业推荐信
2013/11/24 职场文书
中英文自我评价常用句型
2013/12/19 职场文书
《母亲的恩情》教学反思
2014/02/13 职场文书
团队队名口号大全
2014/06/06 职场文书
医院节能减排方案
2014/06/13 职场文书
物理教育专业求职信
2014/06/25 职场文书
2016年保险公众宣传日活动总结
2016/04/05 职场文书
解决Pytorch中关于model.eval的问题
2021/05/22 Python
一次SQL查询优化原理分析(900W+数据从17s到300ms)
2022/06/10 SQL Server