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文件相关推荐

  1. python找不到csv文件_Python如何读取csv文件

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本). 纯文本意味着该文件是一个字符序列, ...

  2. python播放本地视频_python opencv 读取本地视频文件 修改ffmpeg的方法

    Python + opencv 读取视频的三种情况: 情况一:通过摄像头采集视频 情况二:通过本地视频文件获取视频 情况三:通过摄像头录制视频,再读取录制的视频 摄像头采集.本地视频文件的读取.写视频 ...

  3. python中如何打开csv文件_Python如何读取csv文件

    逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本). 纯文本意味着该文件是一个字符序列, ...

  4. python怎么分行读取txt文件_python怎么读取txt文件内容

    详细内容 读取文件: 步骤:打开 -- 读取 -- 关闭>>> f = open('/tmp/test.txt') >>> f.read() 'hello pyth ...

  5. 在python里面怎么读取文件_python怎么读取文件内容

    详细内容 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出OSError的错误. 完整的语法格式为:(推荐学习: ...

  6. python读取nii文件_python实现批量nii文件转换为png图像

    之前介绍过单个nii文件转换成png图像: 这里介绍将多个nii文件(保存在一个文件夹下)转换成png图像.且图像单个文件夹的名称与nii名字相同. import numpy as np import ...

  7. python读取docx文件_Python应用 | 读写docx文件 (值得收藏的技能)

    字处理软件是平时办公必备的同时也是最常用的软件之一,而字处理软件用的最多最频繁的就是微软的word,其扩展名为docx.在日常工作中,可能需要对很多的docx文件进行批处理,例如教师在批阅学生提交的电 ...

  8. python3 读取.plist文件_Python学习笔记 -5 - 文件操作

    Python文件操作 读写文件是最常见的IO操作,在磁盘上读写文件的功能都是由操作系统提供的,操作系统不允许普通的程序直接操作磁盘(大部分程序都需要间接的通过操作系统来完成对硬件的操作),所以,读写文 ...

  9. python怎么读数据_Python如何读取数据

    一.从文本中读取数据 Python可以读取任何格式的文本数据,使用Python读取文本数据一般分为三个步骤.分别是:定义数据文件.获取文件对象.读取文件内容.下面让小编来分别解释它们是如何实现的. 定 ...

  10. python读取excel中文_python如何读取excel

    python 读取excel可分为以下几步:首先安装excel库xlrd,然后获取excel文件位置并读取,最后读取sheet和指定的rows和cols内容 今天将要介绍的是如何通过Python语言来 ...

最新文章

  1. 最新SOTA模型和实现代码
  2. Python3中Pillow(PIL)介绍
  3. 关于学习Python的一点学习总结(47->静态方法和类方法)
  4. testng 定时构建_Jenkins使用安装:持续集成自动化方案 | Web自动化测试方案
  5. [html] iframe在更改了src之后,不出现后退或者前进按钮怎么解决?
  6. 用计算机弹奏曲子童年,5.这首曲子使我想起了我的童年.十.书面表达现在.计算机游戏非常盛行.这是一件好事还是一件坏事?请你用英语写一篇短文来陈述自己的观点.并说明理由.字数:80-120....
  7. java基础知识整理(精简)
  8. 浅谈Android进阶之路
  9. O - Muddy Fields
  10. matlab程序产生OAM波,一种反射型极化转换超表面的轨道角动量产生结构设计的制作方法...
  11. git clone 的--single-branch和--depth参数
  12. Ubuntu查看当前IP地址
  13. linux查询打印机ip,Linux C打印IP地址信息
  14. 华为公有云服务-计算类(2)
  15. 2020李宏毅学习笔记——15.Recurrent Netural Network 上
  16. gitlab 配https_gitlab容器--带https配置
  17. 美学心得(第二百三十五集) 罗国正
  18. 键盘输入10个正整数,先打印输出奇数,再输出偶数
  19. 谷晟阳:人生的三次觉醒:见自己,见天地,见众生。
  20. 紫光展锐启动全新品牌,进击“芯时代”,锐意新辉煌

热门文章

  1. mac osx从10.13.6更新到10.14时提示“安装需要下载重要内容。该内容此时无法下载。请稍后再试。”
  2. 一文看懂分类模型的评估指标:准确率、精准率、召回率、F1等
  3. JavaScript学习之HTML-demo
  4. 鸿蒙幼儿园名称分析,幼儿园大班社会场:名字挖掘的意义
  5. 教育APP开发的流程
  6. 计算机世界的基本单位
  7. Xshell不能使用退格、删除键的解决方案
  8. 自媒体人是怎么给视频配音的
  9. 因客而变,别人还在卖产品的时候,乐语已经卖起了“人心”
  10. lol服务器正在维护,《lol手游》serveriscurrentlyundermaintenance解决方法 登录不了解决教程...