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基础教程之基本内置数据类型介绍
Feb 20 Python
python简单读取大文件的方法
Jul 01 Python
解决Python requests 报错方法集锦
Mar 19 Python
Python实现的本地文件搜索功能示例【测试可用】
May 30 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
Python实现队列的方法示例小结【数组,链表】
Feb 22 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
Python使用os.listdir和os.walk获取文件路径
May 21 Python
解决python3中os.popen()出错的问题
Nov 19 Python
python plt.plot bar 如何设置绘图尺寸大小
Jun 01 Python
Python实现列表拼接和去重的三种方式
Jul 02 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
LotusPhp笔记之:基于ObjectUtil组件的使用分析
2013/05/06 PHP
PHP中trim()函数简单使用指南
2015/04/16 PHP
PHP获取一年有几周以及每周开始日期和结束日期
2015/08/06 PHP
PHP基于简单递归函数求一个数阶乘的方法示例
2017/04/26 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
javascript 点击整页变灰的效果(可做退出效果)。
2008/01/09 Javascript
javascript加号"+"的二义性说明
2013/03/04 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
jQuery Ajax异步处理Json数据详解
2013/11/05 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
关于JavaScript语句后面的分号问题
2017/12/07 Javascript
解决webpack无法通过IP地址访问localhost的问题
2018/02/22 Javascript
vue项目中公用footer组件底部位置的适配问题
2018/05/10 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
python模块之re正则表达式详解
2017/02/03 Python
100行Python代码实现自动抢火车票(附源码)
2018/01/11 Python
PyQt5响应回车事件的方法
2019/06/25 Python
python 基于dlib库的人脸检测的实现
2019/11/08 Python
使用CSS3来匹配横屏竖屏的简单方法
2015/08/04 HTML / CSS
css3实现多个元素依次显示效果
2017/12/12 HTML / CSS
阳光体育:Sunny Sports(购买露营和远足设备)
2018/08/07 全球购物
潘多拉珠宝美国官方网站:Pandora US
2020/06/18 全球购物
西式婚礼主持词
2014/03/13 职场文书
社区食品安全实施方案
2014/03/28 职场文书
大型公益活动策划方案
2014/08/20 职场文书
12.4法制宣传日活动总结
2014/08/26 职场文书
2014市府办领导班子“四风问题”对照检查材料思想汇报
2014/09/24 职场文书
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle