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文件的讀取和寫入完成

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