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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*pprp*

如果有帮助可以打赏一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值