python读取yaml文件_python 怎么读取yaml文件
yaml简介
1.yaml [ˈjæməl]: Yet Another Markup Language:另一种标记语言。yaml 是专门用来写配置文件的语言,非常简洁和强大,之前用ini也能写配置文件,看了yaml后,发现这个更直观,更方便,有点类似于json格式。
2.yaml基本语法规则:
·大小写敏感
·使用缩进表示层级关系
·缩进时不允许使用Tab键,只允许使用空格。
·缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
·#表示注释,从这个字符一直到行尾,都会被解析器忽略,这个和python的注释一样
3.yaml支持的数据结构有三种:
·对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
·数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
·纯量(scalars):单个的、不可再分的值。字符串、布尔值、整数、浮点数、Null、时间、日期
安装yaml
1.使用pip安装pyyaml模块pip install pyyaml
键值对(dict)
1.yaml里面的键值对,也就是python里面的字典(dict)数据类型,比如python里面的字典,用yaml如何去写。# python3.6
{
"user": "admin",
"psw": "123456,
}
在yaml文件里可以这样写:# yaml
user: admin
psw: 123456
2.字典嵌套字典# python3.6
"nb1": {
"user": "admin",
"psw": "123456,
}
3.yaml文件里可以这样写:# yaml
nb1:
user: admin
psw: 123456
4.用python读取yaml文件案例如下,先用open方法读取文件数据,再通过load方法转成字典,这个load跟json里面的load是相似的。# coding:utf-8
import yaml
import os
# 获取当前脚本所在文件夹路径
curPath = os.path.dirname(os.path.realpath(__file__))
# 获取yaml文件路径
yamlPath = os.path.join(curPath, "cfgyaml.yaml")
# open方法打开直接读出来
f = open(yamlPath, 'r', encoding='utf-8')
cfg = f.read()
print(type(cfg)) # 读出来是字符串
print(cfg)
d = yaml.load(cfg) # 用load方法转字典
print(d)
print(type(d))
运行结果如下:
序列(list)
1.yaml里面写一个数组,前面加一个‘-’符号,如下:- admin1: 123456
- admin2: 111111
- admin3: 222222
对应python里面的list[{'admin1': 123456},
{'admin2': 111111},
{'admin3': 222222}]
注意:数字读出来的是int或float类型
纯量(str)
1.int和float类型的数字n1: 12.30
对应python{'n1': 12.3}
2.布尔值用true和false表示n2: true
n3: false
对应python{'n2': True, 'n3': True}
3.None用~表示n4: ~
对应python{'n4': None}
4.时间采用 ISO8601 格式。time1: 2001-12-14t21:59:43.10-05:00
对应python{'time1': datetime.datetime(2001, 12, 15, 2, 59, 43, 100000)}
5.日期采用复合 iso8601 格式的年、月、日表示。date1: 2017-07-31
对应python{'date1': datetime.date(2017, 7, 31)}
6.使用两个感叹号,强制转换数据类型。# int转str
n6: !!str 123
对应python{'n6': '123'}# bool值转str
n7: !!str true
对应python{'n7': 'true'}
7.在yaml文件写入以下内容:n1: 12.30
n2: true
n3: false
n4: ~
time1: 2018-04-18t21:59:43.10+08:00
date1: 2018-04-18
n6: !!str 123
n7: !!str true
python读取结果:{'n1': 12.3,
'n2': True,
'n3': False,
'n4': None,
'time1': datetime.datetime(2018, 4, 18, 13, 59, 43, 100000),
'date1': datetime.date(2018, 4, 18),
'n6': '123',
'n7': 'true'}
混合使用
1.list嵌套dict,在yaml里面写入如下内容:- user: admin1
psw: '123456'
- user: admin2
psw: '111111'
- user: admin3
psw: '222222'
用python读取出来的结果:[{'user': 'admin1', 'psw': '123456'},
{'user': 'admin2', 'psw': '111111'},
{'user': 'admin3', 'psw': '222222'}]
2.dict嵌套list,在yaml里面写入如下内容:nub1:
- admin1
- '123456'
nb2:
- admin2
- '111111'
nb3:
- admin3
- '222222'
用python读取出来的结果:{'nub1': ['admin1', '123456'],
'nb2': ['admin2', '111111'],
'nb3': ['admin3', '222222']}
众多python培训视频,尽在python学习网,欢迎在线学习!
python读取yaml文件_python 怎么读取yaml文件相关推荐
- python找不到csv文件_Python如何读取csv文件
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本). 纯文本意味着该文件是一个字符序列, ...
- python播放本地视频_python opencv 读取本地视频文件 修改ffmpeg的方法
Python + opencv 读取视频的三种情况: 情况一:通过摄像头采集视频 情况二:通过本地视频文件获取视频 情况三:通过摄像头录制视频,再读取录制的视频 摄像头采集.本地视频文件的读取.写视频 ...
- python中如何打开csv文件_Python如何读取csv文件
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本). 纯文本意味着该文件是一个字符序列, ...
- python怎么分行读取txt文件_python怎么读取txt文件内容
详细内容 读取文件: 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() 'hello pyth ...
- 在python里面怎么读取文件_python怎么读取文件内容
详细内容 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出OSError的错误. 完整的语法格式为:(推荐学习: ...
- python读取nii文件_python实现批量nii文件转换为png图像
之前介绍过单个nii文件转换成png图像: 这里介绍将多个nii文件(保存在一个文件夹下)转换成png图像.且图像单个文件夹的名称与nii名字相同. import numpy as np import ...
- python读取docx文件_Python应用 | 读写docx文件 (值得收藏的技能)
字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx.在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电 ...
- python3 读取.plist文件_Python学习笔记 -5 - 文件操作
Python文件操作 读写文件是最常见的IO操作,在磁盘上读写文件的功能都是由操作系统提供的,操作系统不允许普通的程序直接操作磁盘(大部分程序都需要间接的通过操作系统来完成对硬件的操作),所以,读写文 ...
- python怎么读数据_Python如何读取数据
一.从文本中读取数据 Python可以读取任何格式的文本数据,使用Python读取文本数据一般分为三个步骤.分别是:定义数据文件.获取文件对象.读取文件内容.下面让小编来分别解释它们是如何实现的. 定 ...
- python读取excel中文_python如何读取excel
python 读取excel可分为以下几步:首先安装excel库xlrd,然后获取excel文件位置并读取,最后读取sheet和指定的rows和cols内容 今天将要介绍的是如何通过Python语言来 ...
最新文章
- 最新SOTA模型和实现代码
- Python3中Pillow(PIL)介绍
- 关于学习Python的一点学习总结(47->静态方法和类方法)
- testng 定时构建_Jenkins使用安装:持续集成自动化方案 | Web自动化测试方案
- [html] iframe在更改了src之后,不出现后退或者前进按钮怎么解决?
- 用计算机弹奏曲子童年,5.这首曲子使我想起了我的童年.十.书面表达现在.计算机游戏非常盛行.这是一件好事还是一件坏事?请你用英语写一篇短文来陈述自己的观点.并说明理由.字数:80-120....
- java基础知识整理(精简)
- 浅谈Android进阶之路
- O - Muddy Fields
- matlab程序产生OAM波,一种反射型极化转换超表面的轨道角动量产生结构设计的制作方法...
- git clone 的--single-branch和--depth参数
- Ubuntu查看当前IP地址
- linux查询打印机ip,Linux C打印IP地址信息
- 华为公有云服务-计算类(2)
- 2020李宏毅学习笔记——15.Recurrent Netural Network 上
- gitlab 配https_gitlab容器--带https配置
- 美学心得(第二百三十五集) 罗国正
- 键盘输入10个正整数,先打印输出奇数,再输出偶数
- 谷晟阳:人生的三次觉醒:见自己,见天地,见众生。
- 紫光展锐启动全新品牌,进击“芯时代”,锐意新辉煌
热门文章
- mac osx从10.13.6更新到10.14时提示“安装需要下载重要内容。该内容此时无法下载。请稍后再试。”
- 一文看懂分类模型的评估指标:准确率、精准率、召回率、F1等
- JavaScript学习之HTML-demo
- 鸿蒙幼儿园名称分析,幼儿园大班社会场:名字挖掘的意义
- 教育APP开发的流程
- 计算机世界的基本单位
- Xshell不能使用退格、删除键的解决方案
- 自媒体人是怎么给视频配音的
- 因客而变,别人还在卖产品的时候,乐语已经卖起了“人心”
- lol服务器正在维护,《lol手游》serveriscurrentlyundermaintenance解决方法 登录不了解决教程...