Fork me on GitHub

python操作YAML文件之pyyaml库

 

1. YAML简介

YAML是一种被认为可以超越XML、JSON的配置文件,最早接触是Spring Boot,木有想到python也是支持的,遂研究一下。

python解析YAML库叫做pyyaml,话说这个名字一点也不酷,按照习俗应该会省略掉一个y叫做pyaml之类的呀。

 

2. 安装pyyaml

从官网下载zip包拷贝到合适的位置并解压从CMD进入此目录:

image

执行setup.py安装:

1
python setup.py install

安装完毕到上面这个命令输出的安装目录看一下文件是否都在。

 

3. 使用

读文件

随便写个yaml的文件,比如config.yaml:

1
2
3
4
5
apple:
  color: red
  weight: 500
dog:
  name: DaHuang

然后解析它:

1
2
3
4
5
6
import yaml
 
if __name__ == '__main__':
    with open('G:\\test\\config.yaml', encoding='UTF-8') as config_file:
        config = yaml.load(config_file)
        print(config)

可以直接从文件加载,加载进来之后是一个字典,打印输出如下:

1
{'apple': {'color': 'red', 'weight': 500}, 'dog': {'name': 'DaHuang'}}

 

写文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import yaml
 
if __name__ == '__main__':
    guy = {
        'name': '陈二',
        'age': '22',
        'tag': 'loser'
    }
 
    # 直接dump可以把对象转为YAML文档
    print(yaml.dump(guy))
 
    # 也可以直接dump到文件或者流中
    with open('G:\\test\\guy.yaml', 'w', encoding='UTF-8') as guy_file:
        yaml.dump(guy, guy_file)

 

 

参考资料:

1. http://pyyaml.org/

2. http://pyyaml.org/wiki/PyYAMLDocumentation

 

.

posted @   CC11001100  阅读(5540)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示