Python基础-47-yaml使用

前言

基础的配置数据我们可以用.ini文件、.json文件等来存放,当然yaml也是可以的,并且使用起来更方便,本篇讲解yaml使用

 

安装

python中操作yaml文件的库为pyyaml模块

pip install pyyaml 直接安装(如下图,安装完成)

 

yaml文件编写的基础规则

1)大小写敏感

2)使用缩进表示层级关系

3)缩进时不允许使用Tab,只允许使用空格,空格数目不重要,只要相同层级的元素左对齐即可

4)# 表示注释

5)默认映射为一个字典格式,加上“-”表示映射为一个列表

6)yaml基本类型包括字符串、整型、浮点型、布尔型、null、时间、日期

 

yaml使用(load读取文件)

【读取数据为字典格式】

test_dict_data.yaml

# test_dict_data.yaml 存放用户信息,打印出来后会是一个字典

id : 001
name : suner001
pwd : suner123
age : 20
addr : jiangsu

read_yaml.py

# coding:utf-8
# read_yaml.py  读取yaml文件中的数据并打印结果

import yaml
import os

cur_path = os.path.dirname(os.path.realpath(__file__))  # 返回当前文件的上层目录
yaml_path = os.path.join(cur_path,"test_dict_data.yaml")  # 拼接yaml文件所在路径

with open(yaml_path,encoding="UTF-8") as yaml_file:
    yaml_result = yaml.load(yaml_file)
    print(yaml_result)

 

执行时,虽然打印了但是有警告信息,提示缺少加载器

百度解决方法,load函数后增加Loader参数,指定Loader=yaml.FullLoader

完整代码

# coding:utf-8
# read_yaml.py  读取yaml文件中的数据并打印结果

import yaml
import os

cur_path = os.path.dirname(os.path.realpath(__file__))  # 返回当前文件的上层目录
yaml_path = os.path.join(cur_path,"test_dict_data.yaml")  # 拼接yaml文件所在路径

with open(yaml_path,encoding="UTF-8") as yaml_file:
    yaml_result = yaml.load(yaml_file,Loader=yaml.FullLoader)
    print(yaml_result)  # 执行结果:{'id': 1, 'name': 'suner001', 'age': 20, 'addr': 'jiangsu', 'pwd': 'suner123'}

 

【读取数据为列表格式】

test_list_data.yaml

# test_list_data.yaml 存放多个用户信息,打印结果为一个列表,里面包含三条字典格式的数据

- id : 001
  name : suner001
  pwd : suner123
  age : 20
  addr : jiangsu

- id : 002
  name : suner002
  pwd : suner123
  age : 21
  addr : shanghai

- id : 003
  name : suner003
  pwd : suner123
  age : 22
  addr : beijing

read_yaml.py

# coding:utf-8
# read_yaml.py  读取yaml文件中的数据并打印结果

import yaml
import os

cur_path = os.path.dirname(os.path.realpath(__file__))  # 返回当前文件的上层目录
yaml_path = os.path.join(cur_path,"test_list_data.yaml")  # 拼接yaml文件所在路径

with open(yaml_path,encoding="UTF-8") as yaml_file:
    yaml_result = yaml.load(yaml_file,Loader=yaml.FullLoader)
    print(yaml_result)

执行结果

 

yaml使用(dump写入文件)

test_data.yaml 为空文件,会将数据写到此文件中去

import_yaml.py 

# coding:utf-8
# import_yaml.py  写入yaml文件中的数据

import yaml
import os

cur_path = os.path.dirname(os.path.realpath(__file__))  # 返回当前文件的上层目录
yaml_path = os.path.join(cur_path,"test_data.yaml")  # 拼接yaml文件所在路径

num_list = list(range(10))
with open(yaml_path,"w",encoding="UTF-8") as yaml_file:
    yaml.dump(num_list,yaml_file) # 参数为写入的数据以及写入的文件流

执行后,打开test_data.yaml文件查看

至此,简单的yaml文件的读取和写入完成

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章