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中的Numpy入门教程
Apr 26 Python
python对象及面向对象技术详解
Jul 19 Python
python使用锁访问共享变量实例解析
Feb 08 Python
Python读取视频的两种方法(imageio和cv2)
Apr 15 Python
python递归函数绘制分形树的方法
Jun 22 Python
基于python实现名片管理系统
Nov 30 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
pytorch中获取模型input/output shape实例
Dec 30 Python
Python socket聊天脚本代码实例
Jan 02 Python
TensorFLow 不同大小图片的TFrecords存取实例
Jan 20 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 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
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
WordPress判断用户是否登录的代码
2011/03/17 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
PHP二维数组去重实例分析
2016/11/18 PHP
详解PHP函数 strip_tags 处理字符串缺陷bug
2017/06/11 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
javascript 函数使用说明
2010/04/07 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
jQuery UI 实现email输入提示实例
2013/08/15 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
Vue SSR 即时编译技术的实现
2020/05/06 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
Antd下拉选择,自动匹配功能的实现
2020/10/24 Javascript
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
Python中用altzone()方法处理时区的教程
2015/05/22 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python字典循环添加一键多值的用法实例
2019/01/20 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
解决python tkinter界面卡死的问题
2019/07/17 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
浅谈HTML5 & CSS3的新交互特性
2016/07/19 HTML / CSS
Fairyseason:为个人和批发商提供女装和配件
2017/03/01 全球购物
澳大利亚最大的在线美发和美容零售商之一:My Hair Care & Beauty
2019/08/24 全球购物
Cecil Mode法国在线商店:女性时尚
2021/01/08 全球购物
建筑工程技术应届生求职信
2013/11/17 职场文书
《忆江南》教学反思
2014/04/07 职场文书
“四风”问题对照检查材料思想汇报
2014/09/16 职场文书
迎新生欢迎词
2015/01/23 职场文书