Python Yaml配置工具

【GiantPandaCV導語】深度學習調參過程中會遇到很多參數,爲了完整保存一個項目的所有配置,推薦使用yaml工具進行配置。

簡介

Yaml是可讀的數據序列化語言,常用於配置文件。

支持類型有:

  • 標量(字符串、證書、浮點)
  • 列表
  • 關聯數組 字典

語法特點:

  • 大小寫敏感
  • 縮進表示層級關係
  • 列表通過 "-" 表示,字典通過 ":"表示
  • 註釋使用 "#"

安裝用命令:

pip install pyyaml

使用

舉個例子:

name: tosan
age: 22
skill:
  name1: coding
  time: 2years
job:
  - name2: JD
    pay: 2k
  - name3: HW
    pay: 4k

注意:關鍵字不能重複;不能使用tab,必須使用空格。

處理的腳本:

import yaml 

f = open("configs/test.yml", "r")

y = yaml.load(f)

print(y)

輸出結果:

YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
  y = yaml.load(f)
{'name': 'tosan', 'age': 22, 'skill': {'name1': 'coding', 'time': '2years'}, 'job': [{'name2': 'JD', 'pay': '2k'}, {'name3': 'HW', 'pay': '4k'}]}

這個警告取消方法是:添加默認loader

import yaml 

f = open("configs/test.yml", "r")

y = yaml.load(f, Loader=yaml.FullLoader)

print(y)

保存:

content_dict = {
	'name':"ch",
}

f = open("./config.yml","w")

print(yaml.dump(content_dict, f))

語法

支持的類型:

# 支持數字,整形、float
pi: 3.14 

# 支持布爾變量
islist: true
isdict: false

# 支持None 
cash: ~

# 時間日期採用ISO8601
time1: 2021-6-9 21:59:43.10-05:00

#強制轉化類型
int_to_str: !!str 123
bool_to_str: !!str true

# 支持list
- 1
- 2
- 3

# 複合list和dict
test2:
  - name: xxx
    attr1: sunny
    attr2: rainy
    attr3: cloudy
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章