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 10 Python
python求斐波那契数列示例分享
Feb 14 Python
Linux下python与C++使用dlib实现人脸检测
Jun 29 Python
Python设计模式之观察者模式原理与用法详解
Jan 16 Python
django 自定义过滤器的实现
Feb 26 Python
简单了解django索引的相关知识
Jul 17 Python
python视频按帧截取图片工具
Jul 23 Python
python使用 cx_Oracle 模块进行查询操作示例
Nov 28 Python
关于Tensorflow分布式并行策略
Feb 03 Python
python yield和Generator函数用法详解
Feb 10 Python
调整Jupyter notebook的启动目录操作
Apr 10 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 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
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
php4的session功能评述(一)
2006/10/09 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
php MsSql server时遇到的中文编码问题
2009/06/11 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
javascript innerHTML、outerHTML、innerText、outerText的区别
2008/11/24 Javascript
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
2010/12/25 Javascript
怎样在JavaScript里写一个swing把数据插入数据库
2012/12/10 Javascript
今天是星期几的4种JS代码写法
2013/09/17 Javascript
Js+Ajax,Get和Post在使用上的区别小结
2016/06/08 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
深入理解AngularJS中的ng-bind-html指令
2017/03/27 Javascript
微信小程序wx:for和wx:for-item的用法详解
2018/04/01 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
详解Vue.js 可拖放文本框组件的使用
2021/03/03 Vue.js
[49:07]VGJ.T vs Optic Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
[06:49]2018DOTA2国际邀请赛寻真——VirtusPro傲视群雄
2018/08/12 DOTA
Python调用SQLPlus来操作和解析Oracle数据库的方法
2016/04/09 Python
Python实现定时任务
2017/02/08 Python
python中defaultdict的用法详解
2017/06/07 Python
Python正则匹配判断手机号是否合法的方法
2020/12/09 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
Python接口自动化系列之unittest结合ddt的使用教程详解
2021/02/23 Python
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
HTML实现代码雨源码及效果示例
2020/02/25 HTML / CSS
联想中国官方商城:Lenovo China
2017/10/18 全球购物
学校学习雷锋活动总结
2014/07/03 职场文书
2019年入党思想汇报
2019/03/25 职场文书
MySQL之select、distinct、limit的使用
2021/11/11 MySQL
Nginx文件已经存在全局反向代理问题排查记录
2022/07/15 Servers