python标准库有哪些模块,简单总结下。

Python 标准库非常庞大且功能强大,它被誉为"自带电池",意味着无需安装任何第三方包就能完成大量任务。要全部列举是不现实的,但我可以按照功能分类,介绍一些最重要和最常用的模块及其功能。

核心分类与常用模块


1. 内置函数和内置常量 (builtins)
  • 功能 :这是最核心的模块,无需使用 import 导入即可在任何地方使用。它包含了语言最基本的功能。

  • 常见成员

    • 函数print(), len(), input(), type(), isinstance(), range(), list(), dict(), str(), int(), open() 等。

    • 常量True, False, None


2. 系统与操作系统交互
  • os:提供了大量与操作系统交互的函数。

    • 功能:文件和目录操作(重命名、删除、创建)、获取系统信息、管理进程环境变量、执行系统命令等。

    • 示例os.listdir(), os.path.join(), os.getcwd(), os.environ

  • sys:提供对 Python 解释器本身相关的变量和函数的访问。

    • 功能 :访问命令行参数 (sys.argv)、退出程序 (sys.exit())、查看已导入的模块 (sys.modules)、标准输入/输出流 (sys.stdin, sys.stdout, sys.stderr)。
  • pathlib (Python 3.4+):面向对象的文件系统路径操作,比 os.path 更现代和易用。

    • 功能:路径构造、检查路径属性、文件操作。

    • 示例Path('file.txt').exists(), Path('dir') / 'subdir' / 'file.txt'


3. 数据类型与算法
  • collections :提供了许多有用的容器数据类型 ,作为内置类型(list, dict, set, tuple)的替代和增强。

    • namedtuple: 创建有名字段的元组子类,可通过属性访问。

    • deque: 双端队列,从两端添加或弹出元素效率很高,适合实现队列和栈。

    • Counter: 计数器,用于统计可哈希对象的出现次数。

    • defaultdict: 字典子类,在键不存在时提供默认值。

    • OrderedDict : 字典子类,记录键的插入顺序(Python 3.7+ 普通 dict 也保序,但此类提供额外方法)。

  • typing (Python 3.5+):支持类型提示,使代码更清晰,便于静态类型检查器和IDE进行分析。

    • 功能 :提供 List, Dict, Tuple, Union, Optional 等类型标注工具。
  • heapq:堆队列算法(优先队列)的实现。

  • bisect:数组二分查找算法,用于维护已排序的列表而不必每次排序。

  • array:提供了一种紧凑的数组类型,用于存储基本类型(如整数、浮点数),比列表更高效。


4. 日期与时间
  • datetime:用于操作日期和时间的类。

    • 功能 :日期 (date)、时间 (time)、日期时间 (datetime)、时间间隔 (timedelta)。
  • time:提供与时间相关的各种函数,通常更侧重于时间戳和睡眠。

    • 功能 :获取当前时间戳 (time.time())、线程睡眠 (time.sleep())、转换时间格式。

5. 数学与数字
  • math:提供了标准的数学函数和常量。

    • 功能 :三角函数、对数、指数、平方根、向上/向下取整、π (math.pi)、e (math.e)。
  • random:生成各种分布的伪随机数。

    • 功能 :生成随机整数/浮点数 (random.randint(), random.random)、随机序列洗牌 (random.shuffle())、随机抽样 (random.sample())。
  • statistics (Python 3.4+):计算基本的统计量。

    • 功能 :均值 (mean)、中位数 (median)、方差 (variance)、标准差 (stdev)。

6. 文件与数据持久化
  • json:用于编码和解码 JSON 数据。

    • 功能 :将 Python 对象序列化为 JSON 字符串 (json.dumps()),将 JSON 字符串反序列化为 Python 对象 (json.loads()),与文件交互 (json.dump(), json.load())。
  • pickle:Python 专用的序列化模块,可将任意 Python 对象转换为字节流。

    • 功能 :用于 Python 程序间的数据交换和保存程序状态。注意:不要反序列化不受信任的来源
  • sqlite3:提供了对 SQLite 嵌入式数据库的接口。

  • csv:用于读写 CSV (逗号分隔值) 文件。


7. 数据压缩与归档
  • gzip , zipfile , tarfile :分别用于处理 .gz, .zip, .tar.* 格式的压缩和解压缩。

8. 并发与并行
  • threading:提供线程相关的操作,用于实现多线程。

    • 注意:由于 GIL 的存在,多线程不适合 CPU 密集型任务,但适合 I/O 密集型任务。
  • multiprocessing:使用子进程而非线程来实现并行,可以绕过 GIL,充分利用多核 CPU。

  • concurrent.futures (Python 3.2+):提供了线程池和进程池的高级接口,简化了异步执行任务。


9. 网络与互联网
  • socket:提供了底层的网络接口(BSD socket API),是大多数网络应用的基础。

  • urllib.request:用于打开和读取 URL(主要是 HTTP)。

  • http.server:提供了构建基本 HTTP 服务器的类(我们上一个示例就用到了它)。

  • email:用于解析和生成电子邮件。

  • smtplib:用于发送电子邮件。


10. 开发与调试工具
  • logging :提供了灵活的事件日志系统,是 print 语句的强大替代品。

    • 功能:支持不同的日志级别(DEBUG, INFO, WARNING, ERROR, CRITICAL)、输出到不同目标(文件、控制台)、自定义格式。
  • unittest:Python 自带的单元测试框架。

  • doctest:通过搜索看起来像交互式 Python 会话的文本来测试代码。

  • pdb:Python 自带的交互式源代码调试器。

  • timeit:测量小代码片的执行时间。

  • venv (Python 3.3+):用于创建轻量级的"虚拟环境",管理项目的依赖包。


11. 其他重要模块
  • re正则表达式操作,提供强大的字符串匹配和替换功能。

  • itertools:提供了用于操作迭代对象的函数,用于创建高效的自定义迭代器。

  • functools:用于高阶函数(操作或返回其他函数的函数)。

    • functools.lru_cache: 一个装饰器,为函数提供缓存功能(记忆化)。
  • enum (Python 3.4+):用于创建枚举类型。

  • argparse:用于编写用户友好的命令行接口,解析命令行参数。

  • configparser :用于读写 Windows 风格的 .ini 配置文件。

总结

类别 核心模块 主要功能
系统交互 os, sys, pathlib 文件操作、获取系统信息、命令行参数
数据结构 collections, typing 增强的容器类型、类型提示
日期时间 datetime, time 日期时间处理、睡眠
数学计算 math, random, statistics 数学函数、随机数、统计计算
数据持久化 json, pickle, sqlite3 JSON/对象序列化、数据库操作
并发编程 threading, multiprocessing 多线程、多进程
网络通信 socket, urllib 底层网络、HTTP 请求
开发工具 logging, unittest, pdb 日志记录、单元测试、调试
文本处理 re 正则表达式匹配

要探索完整的标准库列表,最权威的来源是 Python 官方文档
https://docs.python.org/3/library/index.html

相关推荐
听情歌落俗2 小时前
MATLAB3-2数据存储-台大郭彦甫
开发语言·数学建模·matlab·矩阵
程序员杰哥2 小时前
什么是Jmeter? Jmeter工作原理是什么?
自动化测试·软件测试·python·测试工具·jmeter·职场和发展·测试用例
C2 小时前
商城购物系统自动化测试报告
python·功能测试·selenium
云天徽上2 小时前
【数据可视化-112】使用PyEcharts绘制TreeMap(矩形树图)完全指南及电商销售数据TreeMap绘制实战
开发语言·python·信息可视化·数据分析·pyecharts
ACEEE12223 小时前
Stanford CS336 | Assignment 2 - FlashAttention-v2 Pytorch & Triotn实现
人工智能·pytorch·python·深度学习·机器学习·nlp·transformer
NG WING YIN3 小时前
Golang關於信件的
开发语言·深度学习·golang
Sunny_yiyi3 小时前
Java根据模版导出PDF文件
java·开发语言·pdf
橘子134 小时前
C++实战:搜索引擎项目(二)
开发语言·c++·搜索引擎