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通过线程实现定时器timer的方法
Mar 16 Python
python计算两个数的百分比方法
Jun 29 Python
实例讲解python中的序列化知识点
Oct 08 Python
Tesserocr库的正确安装方式
Oct 19 Python
python实现朴素贝叶斯算法
Nov 19 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
flask应用部署到服务器的方法
Jul 12 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
Jul 22 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
Feb 28 Python
Python接口开发实现步骤详解
Apr 26 Python
如何把python项目部署到linux服务器
Aug 26 Python
python 窃取摄像头照片的实现示例
Jan 08 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
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php session处理的定制
2009/03/16 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
深入Nginx + PHP 缓存详解
2013/07/11 PHP
PHP循环结构实例讲解
2014/02/10 PHP
Yii2针对游客、用户防范规则和限制的解决方法分析
2016/10/08 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
用JavaScript实现类似于ListBox功能示例代码
2014/03/09 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
2014/05/05 Javascript
javascript中call apply 与 bind方法详解
2016/03/10 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
bootstrap+jQuery 实现下拉菜单中复选框全选和全不选效果
2017/06/12 jQuery
vue的状态管理模式vuex
2017/11/30 Javascript
JavaScript门道之标准库
2018/05/26 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
tornado捕获和处理404错误的方法
2014/02/26 Python
python正则表达式re模块详解
2014/06/25 Python
python实现得到一个给定类的虚函数
2014/09/28 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
python单线程下实现多个socket并发过程详解
2019/07/27 Python
django使用admin站点上传图片的实例
2019/07/28 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
爷爷追悼会答谢词
2014/01/24 职场文书
期末评语大全
2014/05/04 职场文书
英文求职信范文
2014/05/23 职场文书
学习型党组织建设经验材料
2014/05/26 职场文书
2014年网管工作总结
2014/12/11 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书
Python中threading库实现线程锁与释放锁
2021/05/17 Python