常用标准库
本文按「字典序」介绍 Python 的常用标准库,更详尽的内容见 Library - Python Docs 官方文档。
argparse¶
argparse 是 Python 标准库提供的命令行参数解析器,用于将用户在命令行输入的字符串转换为结构化的参数数据。它在「类型校验、默认值处理、自动帮助信息、子命令组织」等方面提供了高度一致的接口。实际工程中,argparse 常用于「训练脚本、服务启动脚本、工具类程序」的参数管理。
argparse 的逻辑结构由三个核心组件构成:
ArgumentParser():描述整个命令行接口;ArgumentParser.add_argument():定义每个参数的类型、格式与处理方式;ArgumentParser.parse_args():实际解析运行时传入的命令行。
基本用法¶
运行方式:
| Bash | |
|---|---|
解析结果:
args.epochs = 20args.lr = 0.0005args.name = "test"
约束参数¶
所有不合法的参数都会导致报错。
type 字段。约束数据类型:
| Python | |
|---|---|
action 字段。约束 bool 数据类型:
| Python | |
|---|---|
Tip
bool 型参数约束就不要加默认值了,然后我感觉 store_false 有一点反人类,一般都用 store_true。
choices 字段。确保参数在预期选项中。
| Python | |
|---|---|
帮助文档¶
help 字段可以让参数内容更加清晰:
| Python | |
|---|---|
使用 --help 自动生成文档:
| Bash | |
|---|---|
输出帮助信息时自带格式,非常实用。
datetime¶
datetime 库提供了日期和时间的处理功能。
基础使用¶
| Python | |
|---|---|
时间格式化¶
| Python | |
|---|---|
时间计算¶
时区处理¶
enum¶
enum 提供了枚举体,主要用来封装一些 magic number:
| Python | |
|---|---|
除了 magic number,magic str 也经常会遇到:
| Python | |
|---|---|
使用枚举体的好处:
- 不用每次手动硬编码;
- 相较于直接定义宏,枚举体可以将宏集中在一起,便于管理;
- 可以被一些 数据校验器 捕获并验证;
- 更好地利用 IDE 的智能补全。
functools¶
functools 提供了函数式编程工具。
常用装饰器¶
其他工具¶
itertools¶
itertools 提供了高效的迭代器工具。
无限迭代器¶
组合迭代器¶
过滤和分组¶
json¶
json 库用于处理 JSON 格式数据。
写入 JSON 文件¶
保存为 json 格式(一个完整的 JSON 对象):
保存为 jsonl 格式(每行一个 JSON 对象):
读取 JSON 文件¶
读取 json 格式文件:
| Python | |
|---|---|
读取 jsonl 格式文件:
| Python | |
|---|---|
os¶
os 库是 Python 与操作系统交互的标准库,提供了丰富的文件系统操作和系统级功能。
| Python | |
|---|---|
基础功能¶
| Python | |
|---|---|
路径操作¶
文件和目录操作¶
环境变量操作¶
| Python | |
|---|---|
如果需要加载 .env 文件中的环境变量,需要额外安装 python-dotenv 库,然后手动将其中的变量加载到内存中:
| Python | |
|---|---|
执行系统命令¶
| Python | |
|---|---|
pathlib¶
pathlib 是面向对象的路径操作库,比 os.path 更现代、更易用。
| Python | |
|---|---|
基础操作¶
| Python | |
|---|---|
路径属性¶
文件操作¶
遍历目录¶
| Python | |
|---|---|
re¶
re 库提供了强大的正则表达式功能。
基本匹配¶
| Python | |
|---|---|
替换和分割¶
| Python | |
|---|---|
分组捕获¶
编译正则表达式¶
sys¶
sys 库提供了与 Python 解释器交互的功能,包括命令行参数、标准输入输出、系统配置等。
命令行参数¶
| Python | |
|---|---|
系统信息¶
| Python | |
|---|---|