python yaml模块基础使用

yaml是专门用来写项目中的配置文件的模块。配置文件指在一个项目中,对项目进行配置的一些数据,运行过程中一般不会发生变化。
安装yaml

pip install pyyaml

新建一个yaml文件,以yaml或yml为后缀名:

config.yaml内容如下:
#信息
info:
 name: 'zhangsan'
 age: 18
 gender: '男'
#兴趣爱好
hobby:
 - playgames
 - sleep

语法规则如下:

1.使用缩进表示层级关系
2.缩进最好使用空格,数目不固定,相同层级的元素左侧对齐即可。
3.文件中字符串可以用引号可以不用引号
4.字典的表示以:+空格分开,以键值对的形式
5.列表的表示 以’—’+空格与值分开

python读取yaml文件内容:

#首先导入yaml
import yaml
with open('config.yaml',encoding='utf-8')as f:
	conf=yaml.load(f)
	print(conf)

结果如下:

YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  config=yaml.load(f)

{'info': {'name': 'zhangsan', 'age': 18, 'gender': '男'}, 'hobby': ['playgames', 'sleep']}

但是有一条yaml的警告信息,提示使用默认的方式加载程序是不安全的,所以在读取内容时手动指定加载方式,看下load的源码:
python yaml模块基础使用_第1张图片
修改代码:

import yaml
with open('config.yaml',encoding='utf-8')as f:
	conf=yaml.load(f,Loader=yaml.FullLoader)
	print(conf)

结果如下:
#警告信息不会提示
{'info': {'name': 'zhangsan', 'age': 18, 'gender': '男'}, 'hobby': ['playgames', 'sleep']}

但是yaml里面还有其他的Loader,比如SafeLoader,会更加安全:

import yaml
with open('config.yaml',encoding='utf-8')as f:
	conf=yaml.load(f,Loader=yaml.SafeLoader)
	print(conf)

结果如下:
#警告信息不会提示
{'info': {'name': 'zhangsan', 'age': 18, 'gender': '男'}, 'hobby': ['playgames', 'sleep']}

yaml写入数据:

import yaml
with open('config.yaml','w') as f:
	f.dump({'name':'lisi','hobby':['playgames','sleep']},f)

结果:
hobby:
- playgames
- sleep
name: lisi

如果需要引用yaml文件中的数据,读取出来通过操作字典或列表等数据类型获取想要的数据就行。

你可能感兴趣的:(python)