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的自动化部署模块Fabric的安装及使用指南
Jan 19 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
Jun 11 Python
Sanic框架Cookies操作示例
Jul 17 Python
win8下python3.4安装和环境配置图文教程
Jul 31 Python
浅析python继承与多重继承
Sep 13 Python
python 构造三维全零数组的方法
Nov 12 Python
python随机在一张图像上截取任意大小图片的方法
Jan 24 Python
12个Python程序员面试必备问题与答案(小结)
Jun 24 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
在django模板中实现超链接配置
Aug 21 Python
Python基础之元类详解
Apr 29 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
windows xp下安装pear
2006/12/02 PHP
PHP读取xml方法介绍
2013/01/12 PHP
PHP+jquery+ajax实现即时聊天功能实例
2014/12/23 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
javascript 写类方式之十
2009/07/05 Javascript
网页自动跳转代码收集
2009/09/27 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
jquery实现相册一下滑动两次的方法
2015/02/09 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
jQuery版本升级踩坑大全
2016/01/12 Javascript
JavaScript实现移动端轮播效果
2017/06/06 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
python每次处理固定个数的字符的方法总结
2013/01/29 Python
pycharm 使用心得(八)如何调用另一文件中的函数
2014/06/06 Python
理解python多线程(python多线程简明教程)
2014/06/09 Python
Python外星人入侵游戏编程完整版
2020/03/30 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
对python cv2批量灰度图片并保存的实例讲解
2018/11/09 Python
使用python opencv对目录下图片进行去重的方法
2019/01/12 Python
python接口自动化(十六)--参数关联接口后传(详解)
2019/04/16 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
2020/05/21 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
2020/06/02 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
西班牙在线光学:Visual-Click
2020/06/22 全球购物
青年创业培训欢迎词
2014/01/10 职场文书
营销总经理岗位职责
2014/02/02 职场文书
公务员年度考核登记表个人总结
2015/02/12 职场文书
无保留意见审计报告
2015/06/05 职场文书
《风娃娃》教学反思
2016/02/18 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
Go 中的空白标识符下划线
2022/03/25 Golang
MySQL创建管理子分区
2022/04/13 MySQL