【python】python常用 module、package用法汇总

本文深入探讨了YAML配置语言及其在Python中的应用,包括如何读取和写入YAML文件,以及PPrint模块的高级用法,用于美化打印复杂数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【python】python常用 module、package用法汇总

yaml

yaml 是专门用来写配置文件的语言

pip install pyyaml
# 通过pip安装
# 用vim新建一个test1.yaml文件,内容如下

NAME: zhangchen # 大小写敏感

name: ZhangChen # 大小写敏感

DATA:
    YEAR: 2019 # 使用缩进表示层级关系
    MONTH: 3 # 缩进时不允许使用Tab键,只允许使用空格
    DAY: 9 # 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
# 用vim新建一个test2.yaml文件,内容如下
- A
- B
- C

- NAME: zhangchen

- name: ZhangChen

- DATA:
    YEAR: 2019
    MONTH: 3
    DAY: 9
# test.py内容如下
import yaml


f1 = open("test1.yaml", "r")
y1 = yaml.load(f1)
f2 = open("test2.yaml", "r")
y2 = yaml.load(f2)
print(y1)
print(y2)
# 执行test.py,打印结果如下
{'DATA': {'YEAR': 2019, 'DAY': 9, 'MONTH': 3}, 'NAME': 'zhangchen', 'name': 'ZhangChen'}
# 可见test1.yaml中格式yaml.load返回的类型是一个字典
['A', 'B', 'C', {'NAME': 'zhangchen'}, {'name': 'ZhangChen'}, {'DATA': {'YEAR': 2019, 'DAY': 9, 'MONTH': 3}}]
# 可见test2.yaml中格式yaml.load返回的类型是一个列表
# 将test1.yaml改成如下内容

NAME: zhangchen
---
name: ZhangChen
---
DATA:
    YEAR: 2019
    MONTH: 3
    DAY: 9
# 将test.py改成如下内容
import yaml


f1 = open("test1.yaml", "r")
y1 = yaml.load_all(f1)
f2 = open("test2.yaml", "r")
y2 = yaml.load(f2)
for data in y1:
    print(data)
print(y2)
# 执行test.py,打印结果如下
{'NAME': 'zhangchen'}
{'name': 'ZhangChen'}
{'DATA': {'YEAR': 2019, 'DAY': 9, 'MONTH': 3}}
['A', 'B', 'C', {'NAME': 'zhangchen'}, {'name': 'ZhangChen'}, {'DATA': {'YEAR': 2019, 'DAY': 9, 'MONTH': 3}}]
# 可见load_all的作用
yaml.dump(a, b)
# 功能:将一个python对象生成为yaml文档

# 使用方法:两个参数
# 第一个参数:a是字典或列表
# 第二个参数:b是一个打开的文本文件或二进制文件,yaml.dump会把生成的yaml文档写到文件里

pprint

pprint是python的自带标准库,一般不需要额外安装。用pip安装会提示已经存在。

pprint的作用主要是将列表、元组、字典等按易于阅读又符合python语法规则的形式打印或保存

import pprint


data = [(1,2,3,4,5,6,7),{1:"a",2:"b",3:"c"},{4:["D","E"],5:"F",6:["G","H","I","J"],7:"K"}]
pprint.pprint(data)
# 终端打印结果如下
[(1, 2, 3, 4, 5, 6, 7),
 {1: 'a', 2: 'b', 3: 'c'},
 {4: ['D', 'E'], 5: 'F', 6: ['G', 'H', 'I', 'J'], 7: 'K'}]
# 可见pprint.pprint()是将列表、元组、字典等按易于阅读又符合python语法规则的形式打印
import pprint


data = [(1,2,3,4,5,6,7),{1:"a",2:"b",3:"c"},{4:["D","E"],5:"F",6:["G","H","I","J"],7:"K"}]
pprint.pformat(data)
# 终端打印结果如下
"[(1, 2, 3, 4, 5, 6, 7),\n {1: 'a', 2: 'b', 3: 'c'},\n {4: ['D', 'E'], 5: 'F', 6: ['G', 'H', 'I', 'J'], 7: 'K'}]"
# 可见pprint.pformat()是将列表、元组、字典等按易于阅读又符合python语法规则的形式保存成字符串
import pprint


data = [(1,2,3,4,5,6,7),{1:"a",2:"b",3:"c"},{4:["D","E"],5:"F",6:["G","H","I","J"],7:"K"}]
result=pprint.pformat(data)
for each in result.split("\n"):
	print(each)
# 终端打印结果如下
[(1, 2, 3, 4, 5, 6, 7),
 {1: 'a', 2: 'b', 3: 'c'},
 {4: ['D', 'E'], 5: 'F', 6: ['G', 'H', 'I', 'J'], 7: 'K'}]

结语

如果您有修改意见或问题,欢迎留言或者通过邮箱和我联系。
手打很辛苦,如果我的文章对您有帮助,转载请注明出处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值