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中绑定与未绑定的类方法用法分析
Apr 29 Python
Python切片索引用法示例
May 15 Python
pycharm远程开发项目的实现步骤
Jan 20 Python
Python提取支付宝和微信支付二维码的示例代码
Feb 15 Python
python实现抽奖小程序
Apr 15 Python
pandas.read_csv参数详解(小结)
Jun 21 Python
python 含子图的gif生成时内存溢出的方法
Jul 07 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
python实现简单井字棋小游戏
Mar 05 Python
Python爬虫与反爬虫大战
Jul 30 Python
Python基础详解之邮件处理
Apr 28 Python
教你用python实现一个无界面的小型图书管理系统
May 21 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读取RSS(Feed)简单实例
2014/06/12 PHP
php正则匹配文章中的远程图片地址并下载图片至本地
2015/09/29 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
基于JQuery的数字改变的动画效果--可用来做计数器
2010/08/11 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
浅谈javascript中自定义模版
2015/01/29 Javascript
jQuery插件开发精品教程(让你的jQuery更上一个台阶)
2015/11/07 Javascript
jQuery Easyui实现左右布局
2016/01/26 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
js实现单张图片平移切换效果
2017/10/11 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
js统计页面上每个标签的数量实例代码
2018/05/29 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
[44:15]国士无双DOTA2 6.82版本详解(上)
2014/09/28 DOTA
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
pip install urllib2不能安装的解决方法
2018/06/12 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
详解基于python的多张不同宽高图片拼接成大图
2019/09/26 Python
python修改文件内容的3种方法详解
2019/11/15 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
Orlebar Brown官网:设计师泳裤和泳装
2020/12/08 全球购物
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
留学自荐信写作方法
2014/01/27 职场文书
财会专业大学生求职信
2014/09/26 职场文书
3.15消费者权益日活动总结
2015/02/09 职场文书
2015入党自荐书范文
2015/03/05 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
关于倡议书的范文
2015/04/29 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android
【DOTA2】半决赛强强对话~ PSG LGD vs EHOME - DPC 2022 CN REGIONAL FINALS WINTER
2022/04/02 DOTA
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android