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类:class创建、数据方法属性及访问控制详解
Jul 25 Python
你眼中的Python大牛 应该都有这份书单
Oct 31 Python
对python中词典的values值的修改或新增KEY详解
Jan 20 Python
深入了解和应用Python 装饰器 @decorator
Apr 02 Python
使用python分析统计自己微信朋友的信息
Jul 19 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 Python
Python实现ATM系统
Feb 17 Python
使用Python发现隐藏的wifi
Mar 04 Python
python datetime处理时间小结
Apr 16 Python
python中rc1什么意思
Jun 19 Python
python help函数实例用法
Dec 06 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连接access数据库
2008/03/27 PHP
php设计模式小结
2013/02/15 PHP
PHP以mysqli方式连接类完整代码实例
2014/07/15 PHP
php实现生成验证码实例分享
2016/04/10 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
PHP截取发动短信内容的方法
2017/07/04 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
Javascript 继承机制实例
2009/08/12 Javascript
stream.js 一个很小、完全独立的Javascript类库
2011/10/28 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
深入理解Java线程编程中的阻塞队列容器
2015/12/07 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
Vue-路由导航菜单栏的高亮设置方法
2018/03/17 Javascript
Vue项目安装插件并保存
2019/01/28 Javascript
微信小程序音乐播放器开发
2019/11/20 Javascript
Python自动化构建工具scons使用入门笔记
2015/03/10 Python
实例解析Python的Twisted框架中Deferred对象的用法
2016/05/25 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
Django app配置多个数据库代码实例
2019/12/17 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
python实现发送带附件的邮件代码分享
2020/09/22 Python
凯蒂·佩里个人女鞋品牌:Katy Perry Collections
2019/04/04 全球购物
电子商务专业求职信
2014/03/08 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
实习生个人总结范文
2015/02/28 职场文书
爱心募捐通知范文
2015/04/27 职场文书
Python实现天气查询软件
2021/06/07 Python
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫