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实现系统状态监测和故障转移实例方法
Nov 18 Python
Python学习之asyncore模块用法实例教程
Sep 29 Python
python使用xlrd与xlwt对excel的读写和格式设定
Jan 21 Python
关于Python数据结构中字典的心得
Dec 04 Python
Python AES加密实例解析
Jan 18 Python
tensorflow实现对图片的读取的示例代码
Feb 12 Python
详解Python爬取并下载《电影天堂》3千多部电影
Apr 26 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 Python
Python中正反斜杠(‘/’和‘\’)的意义与用法
Aug 12 Python
浅谈Pytorch torch.optim优化器个性化的使用
Feb 20 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
python缺失值填充方法示例代码
Dec 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
URL Rewrite的设置方法
2007/01/02 PHP
测试您的 PHP 水平的题目
2007/05/30 PHP
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
windows7下php开发环境搭建图文教程
2015/01/06 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
一段好玩的JavaScript代码
2006/12/01 Javascript
JS之小练习代码
2008/10/12 Javascript
javascript 类型判断代码分析
2010/03/28 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
jquery选择器大全 全面详解jquery选择器
2014/03/06 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
node跨域请求方法小结
2017/08/25 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
python递归计算N!的方法
2015/05/05 Python
python hook监听事件详解
2018/10/25 Python
python DataFrame 取差集实例
2019/01/30 Python
24式加速你的Python(小结)
2019/06/13 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
python求一个字符串的所有排列的实现方法
2020/02/04 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
Linux如何为某个操作添加别名
2013/03/01 面试题
文明餐桌行动实施方案
2014/02/19 职场文书
售前工程师职业生涯规划
2014/03/02 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
2016学习雷锋精神活动倡议书
2015/04/27 职场文书
2015年妇女工作总结
2015/05/14 职场文书
运动会跳远广播稿
2015/08/19 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书