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 实现插入排序算法
Jun 05 Python
Python Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
在Python编程过程中用单元测试法调试代码的介绍
Apr 02 Python
web.py在SAE中的Session问题解决方法(使用mysql存储)
Jun 24 Python
基于并发服务器几种实现方法(总结)
Dec 29 Python
元组列表字典(莫烦python基础)
Apr 03 Python
Django中使用 Closure Table 储存无限分级数据
Jun 06 Python
Python 写入训练日志文件并控制台输出解析
Aug 13 Python
Pycharm+Python+PyQt5使用详解
Sep 25 Python
学Python 3的理由和必要性
Nov 19 Python
Python如何读写字节数据
Aug 05 Python
能让Python提速超40倍的神器Cython详解
Jun 24 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
10个实用的PHP代码片段
2011/09/02 PHP
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
提高代码性能技巧谈—以创建千行表格为例
2006/07/01 Javascript
prototype class详解
2006/09/07 Javascript
激活 ActiveX 控件
2006/10/09 Javascript
Javascript面向对象编程(二) 构造函数的继承
2011/08/28 Javascript
关于JS管理作用域的问题
2013/04/10 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
在NodeJS中启用ECMAScript 6小结(windos以及Linux)
2014/07/15 NodeJs
jQuery实现可展开折叠的导航效果示例
2016/09/12 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
给vue项目添加ESLint的详细步骤
2017/09/29 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
2018/03/05 Javascript
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
antd中table展开行默认展示,且不需要前边的加号操作
2020/11/02 Javascript
利用JS判断元素是否为数组的方法示例
2021/01/08 Javascript
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
python脚本定时发送邮件
2020/12/22 Python
HTML5 预加载让页面得以快速呈现
2013/08/13 HTML / CSS
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
Java里面有没有全局变量?为什么?
2015/02/06 面试题
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
房屋出租协议书
2014/04/10 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
为什么node.js不适合大型项目
2021/04/28 Javascript
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android
Nginx反向代理学习实例教程
2021/10/24 Servers
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers