python小知识-好用的配置工具yaml

简介: 配置是开发中常用的手段,通过配置可以灵活的设置可变的参数,而不需要调整代码。python中有使用不同的文件格式来做配置,如json,xml等。今天这里分享一个好用的配置工具yaml文件。

配置是开发中常用的手段,通过配置可以灵活的设置可变的参数,而不需要调整代码。

python中有使用不同的文件格式来做配置,如json,xml等。今天这里分享一个好用的配置工具yaml文件。

首先我们来了解下yaml的文件格式。

1.yaml文件格式

  • 区分大小写;
  • 使用缩进表示层级关系;
  • 使用空格键缩进,而非Tab键缩进
  • 缩进的空格数目不固定,只需要相同层级的元素左侧对齐;
  • 文件中的字符串不需要使用引号标注,但若字符串包含有特殊字符则需用引号标注;
  • 注释标识为#

举个例子:

network:
 channel: 3
 lr: le-3
dataset:
 data: [1, 2, 3]
 name: bsr
 is_use: true
 nul_val: null
 another: ~
 param: 12.1
alist:
  - a
  - b
  - c

2.读取yaml文件

yaml文件是通过pyyaml包来解析的, 安装如下:

pip install pyyaml

读取文件如下:

import yaml
import os
yaml_file =  './conf.yml'
with open(yaml_file, 'r', encoding="utf-8") as file:
    file_data = file.read()
    data = yaml.safe_load(file_data)
    print(data)
    print("类型:", type(data))

# {'network': {'channel': 3, 'lr': 'le-3'}, 'dataset': {'data': [1, 2, 3], 'name': 'bsr', 'is_use': True, 'nul_val': None, 'another': None, 'param': 12.1}, 'alist': ['a', 'b', 'c']}
# 类型: <class 'dict'>

由上可知,yaml文件经过解析以后是以python 字典对象存在的。通过对比yaml文件和dict数据,我们发现:

  • yaml可以支持python常用的对象类型,如整形,浮点型,列表,字典, None,布尔型等
  • yaml中:形成了key:value的字典映射,可以方便通过key获取
  • yaml中的字符不需要额外的引号,yaml自动识别
  • None可以通过null或者~来表示
  • yaml文件的缩进表示层级,不同层级嵌套表示字典的不同嵌套
  • -表示列表的某个元素值

是不是超级好用?

# 3
print(data.get('network').get('channel'))

# [1, 2, 3]
print(data.get('dataset').get('data'))

需要注意的是: 上面yaml文件中 lr: 1e-3 这种科学计数法并没有正确识别, 可以调整成lr: 1.0e-3即可识别;

另外yaml中也可以进行强制类型转换(通过!!) 格式如下

test:
 str_vale: !!str 1

读取str_vale为string类型

希望对你有帮助!

目录
相关文章
|
2月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
331 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
1月前
|
安全 网络安全 数据安全/隐私保护
|
2月前
|
Java 数据库连接 Maven
springBoot:项目建立&配置修改&yaml的使用&resource 文件夹(二)
本文档介绍了如何创建一个基于Maven的项目,并配置阿里云仓库、数据库连接、端口号、自定义启动横幅及多环境配置等。同时,详细说明了如何使用YAML格式进行配置,以及如何处理静态资源和模板文件。文档还涵盖了Spring Boot项目的`application.properties`和`application.yaml`文件的配置方法,包括设置数据库驱动、URL、用户名、密码等关键信息,以及如何通过配置文件管理不同环境下的应用设置。
267 1
|
16天前
|
数据可视化 编译器 Python
Manim:数学可视化的强大工具 | python小知识
Manim(Manim Community Edition)是由3Blue1Brown的Grant Sanderson开发的数学动画引擎,专为数学和科学可视化设计。它结合了Python的灵活性与LaTeX的精确性,支持多领域的内容展示,能生成清晰、精确的数学动画,广泛应用于教育视频制作。安装简单,入门容易,适合教育工作者和编程爱好者使用。
79 7
|
1月前
|
JavaScript 前端开发 开发者
探索 DrissionPage: 强大的Python网页自动化工具
DrissionPage 是一个基于 Python 的网页自动化工具,结合了浏览器自动化的便利性和 requests 库的高效率。它提供三种页面对象:ChromiumPage、WebPage 和 SessionPage,分别适用于不同的使用场景,帮助开发者高效完成网页自动化任务。
131 4
|
1月前
|
开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第41天】 在编程的世界中,效率与简洁是永恒的追求。本文将深入探讨Python编程语言中一个独特且强大的特性——列表推导式(List Comprehension)。我们将通过实际代码示例,展示如何利用这一工具简化代码、提升性能,并解决常见编程问题。无论你是初学者还是资深开发者,掌握列表推导式都将使你的Python之旅更加顺畅。
|
1月前
|
JSON Shell Linux
配置Python的环境变量可
配置Python的环境变量
148 4
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言与Python:比较两种数据分析工具
R语言和Python是目前最流行的两种数据分析工具。本文将对这两种工具进行比较,包括它们的历史、特点、应用场景、社区支持、学习资源、性能等方面,以帮助读者更好地了解和选择适合自己的数据分析工具。
53 2
|
2月前
|
C语言 开发者 Python
探索Python中的列表推导式:简洁而强大的工具
【10月更文挑战第21天】在Python的世界里,代码的优雅与效率同样重要。列表推导式(List Comprehensions)作为一种强大而简洁的工具,允许开发者通过一行代码完成对列表的复杂操作。本文将深入探讨列表推导式的使用方法、性能考量以及它如何提升代码的可读性和效率。
|
2月前
|
自然语言处理 算法 数据挖掘
探讨如何利用Python中的NLP工具,从被动收集到主动分析文本数据的过程
【10月更文挑战第11天】本文介绍了自然语言处理(NLP)在文本分析中的应用,从被动收集到主动分析的过程。通过Python代码示例,详细展示了文本预处理、特征提取、情感分析和主题建模等关键技术,帮助读者理解如何有效利用NLP工具进行文本数据分析。
57 2

热门文章

最新文章