使用yaml目的:复杂代码可以实现仅修改yaml文件,重新运行打开yaml文件的python命令后参数就可以更新。不需要在python文件中找需要修改的参数位置。

一、新建yaml文件

yaml文件是一种文件类型,类似于txt文件。先创建一个1.txt文件,然后重命名文件,把后缀名改成为.yaml就可以直接创建yaml文件。如果不显示后缀名,单击我的电脑——查看,选中“文件扩展名”。

二、yaml文件可以放的对象

1、键值对的集合,对应python的字典。

2、数组,对应python的列表。

3、纯量(少用),单个不可再分的值,比如字符串,bool值,整数,浮点数,时间日期等。

三、编辑yaml来存放参数

yaml文件编辑规则:

大小写敏感,yaml文件区分大小写。

使用缩进表示层级关系。

缩进用空格,不能用tab键。

空格个数没有要求,只要相同层级对齐即可。

编辑方法

选择pycharm打开yaml文件

1、创建字典

在打开的yaml文件中输入:

a: 1
b: 2

按ctrl+s保存,用pycharm查看这个字典:

import yaml

with open('./learn.yaml','r',encoding='utf8') as file:#utf8可识别中文
    fff=yaml.safe_load(file)
print(fff)

输出:

注意:yaml文件中的冒号与数字之间必须有一个空格

这样我们就得到了一个字典,名称叫fff,可以执行python中对字典的一切操作,如:

print(fff['a']+fff['b'])#字典

输出:

 

2、创建列表

在yaml文件中输入

– python
– 2
– 9
减号和值中间必须有空格,按ctrl+s保存,用pycharm查看这个字典:

import yaml

with open('./learn.yaml','r',encoding='utf8') as file:#utf8可识别中文
    fff=yaml.safe_load(file)
print(fff)

print(fff[1]+fff[2])#列表

输出:

 3、嵌套

yaml文件中输入:

– name: sun
  age: 18
  a: 2
  b: 3
– name: s
  a: 3
  b: 4

也就是说,整体是一个列表,包含两个元素,每个元素都是字典

在pycharm中使用这个列表:

import yaml

with open('./learn.yaml','r',encoding='utf8') as file:#utf8可识别中文
    fff=yaml.safe_load(file)
print(fff)

print(fff[1])

print(fff[0]['a']+fff[1]['b'])

输出如下:

 4、用—分隔yaml文档

yaml文件中输入


name: sun
age: 18

name: s
age: 3

yaml文件被读进来之后,需要用for循环输出这两个字典,代码如下:

import yaml

with open('./learn.yaml','r',encoding='utf8') as file:#utf8可识别中文
    fff=yaml.safe_load_all(file)
    for i in fff:
        print(i)

输出如下:

5、注意yaml文件中单双引号的区别

yaml文件如下:

str1: 'Hello\nWorld'
str2: "Hello\nWorld"

单引号中的特殊字符转到python中会被转义,双引号不会被转义,最后输出的是特殊字符

读入代码:

import yaml

with open('./learn.yaml','r',encoding='utf8') as file:#utf8可识别中文
    fff=yaml.safe_load(file)
print(fff)

print(fff['str1'],fff['str2'])

输出如下:

 

 

来源:鲜奶小狐狸

物联沃分享整理
物联沃-IOTWORD物联网 » python使用yaml文件

发表评论