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实现猜数字游戏(无重复数字)示例分享
Mar 29 Python
Python实现CET查分的方法
Mar 10 Python
python正常时间和unix时间戳相互转换的方法
Apr 23 Python
python抓取并保存html页面时乱码问题的解决方法
Jul 01 Python
使用Python实现在Windows下安装Django
Oct 17 Python
Python图像的增强处理操作示例【基于ImageEnhance类】
Jan 03 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 Python
python爬虫 urllib模块发起post请求过程解析
Aug 20 Python
Python爬虫HTPP请求方法有哪些
Jun 03 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
Sep 28 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 Python
Python txt文件如何转换成字典
Nov 03 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导出csv数据在浏览器中输出提供下载或保存到文件的示例
2014/04/24 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
php使用pthreads v3多线程实现抓取新浪新闻信息操作示例
2020/02/21 PHP
javascript showModalDialog模态对话框使用说明
2009/12/31 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
在jquery中combobox多选的不兼容问题总结
2013/12/24 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
搭建Bootstrap离线文档的方法
2016/12/02 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
在 Vue 中使用 JSX 及使用它的原因浅析
2020/02/10 Javascript
如何解决vue在ios微信"复制链接"功能问题
2020/03/26 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
Python socket.error: [Errno 98] Address already in use的原因和解决方法
2014/08/25 Python
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
Python扩展内置类型详解
2018/03/26 Python
python利用requests库模拟post请求时json的使用教程
2018/12/07 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
Python Handler处理器和自定义Opener原理详解
2020/03/05 Python
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
澳大利亚购买健身器材网站:Gym Direct
2019/12/19 全球购物
struct和class的区别
2015/11/20 面试题
北大自主招生自荐信
2013/10/19 职场文书
教师推荐信范文
2013/11/24 职场文书
民族学专业求职信
2014/07/28 职场文书
组织委员竞选稿
2015/11/21 职场文书
Oracle笔记
2021/04/05 Oracle
MySQL 重写查询语句的三种策略
2021/05/10 MySQL
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
Vue的生命周期一起来看看
2022/02/24 Vue.js
你知道Java Spring的两种事务吗
2022/03/16 Java/Android
搭建zabbix监控以及邮件报警的超级详细教学
2022/07/15 Servers