python使用yaml文件
使用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'])
输出如下:
来源:鲜奶小狐狸