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 02 Python
python实现ID3决策树算法
Dec 20 Python
Python使用ConfigParser模块操作配置文件的方法
Jun 29 Python
解决python中画图时x,y轴名称出现中文乱码的问题
Jan 29 Python
python实现给微信指定好友定时发送消息
Apr 29 Python
python将字符串转换成json的方法小结
Jul 09 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
Python numpy.zero() 初始化矩阵实例
Nov 27 Python
PyTorch 普通卷积和空洞卷积实例
Jan 07 Python
Django 删除upload_to文件的步骤
Mar 30 Python
python使用dlib进行人脸检测和关键点的示例
Dec 05 Python
解决Python中的modf()函数取小数部分不准确问题
May 28 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作的文本留言本的例子(四)
2006/10/09 PHP
php引用地址改变变量值的问题
2012/03/23 PHP
PHP使用逆波兰式计算工资的方法
2015/07/29 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
选择器中含有空格在使用示例及注意事项
2013/07/31 Javascript
jQuery封装的tab选项卡插件分享
2015/06/16 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
JS图片轮播与索引变色功能实例详解
2017/07/06 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
详细分析vue响应式原理
2020/06/22 Javascript
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
python实现二维数组的对角线遍历
2019/03/02 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
解决python明明pip安装成功却找不到包的问题
2019/08/28 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
Html5移动端网页端适配(js+rem)
2021/02/03 HTML / CSS
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
毕业生毕业总结的自我评价范文
2013/11/02 职场文书
初入社会应届生求职信
2013/11/18 职场文书
劳动之星获奖感言
2014/02/01 职场文书
社区志愿者培训方案
2014/06/10 职场文书
放假通知怎么写
2015/08/18 职场文书
社区干部培训心得体会
2016/01/06 职场文书
2016年村干部公开承诺书(公开承诺事项)
2016/03/25 职场文书
HR必备:超全面的薪酬待遇管理方案!
2019/07/12 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
Python数据分析入门之教你怎么搭建环境
2021/05/13 Python