Python常用内置模块与第三方库速查指南

许南星
许南星
发布时间:2026-10-13| 6人浏览过
原创

本文系统梳理Python开发中高频使用的内置模块,涵盖日期时间处理、数据结构优化、编码与加密算法及网络请求等核心功能。同时对比介绍Pillow、requests、chardet和psutil等主流第三方库,帮助开发者快速掌握实用工具,提升编码效率与系统交互能力。

日期时间与基础数据结构

datetime

该模块提供日期与时间处理类,重点在于熟悉其API接口。时区的概念在不同编程语言中是通用的,理解这一基础概念对于跨语言开发至关重要。


from datetime import datetime as dt
dt.utcnow() # 系统UTC时间
dt.now() # 系统当前时间
dt(2018, 3, 27, 14, 30) # 获得2018-3-27 14:30对应的datetime对象
dt.now().timestamp() # 秒数1522133962.527885
dt.fromtimestamp(1522133962.527885) # 从秒到datetime对象
dt.strptime('2015-6-1 18:19:59', '%Y-%m-%d %H:%M:%S') # string转datetime对象
dt.now().strftime('%a, %b %d %H:%M') # datetime转string

collections

namedtuple

它用于创建简单的只读对象,适合替代轻量级的类定义,无需编写完整的类结构即可实现数据封装。


from collections import namedtuple
Point = namedtuple('Point', ['x', 'y', 'z'])
p = Point(1, 1, 1)
p.x # 1
p.z # 1
p.x = 2 # Error

deque

即双向队列,支持从两端高效地添加或移除元素,适用于需要频繁在头部或尾部进行操作的场景。


from collections import deque
q = deque(['a', 'b', 'c'])
q.append('x')
q.pop() # x
q.append('u')
q.popleft() # a

defaultdict

与普通字典不同,当访问不存在的键时,defaultdict会调用提供的lambda表达式或工厂函数来生成默认值,避免了KeyError异常。


from collections import defaultdict
dd = defaultdict(lambda : None)
dd['x'] = 1
dd['x'] # 1
print(dd['y']) # None

OrderedDict

有序字典能够严格保持键值对的插入顺序,确保迭代时元素按添加的先后顺序输出,适用于对顺序有严格要求的数据结构。


from collections import OrderedDict
od = OrderedDict()
od['x'] = 1
od['y'] = 2
od['z'] = 3
for item in od:
  print(item) # x y z

Counter

计数器类可视为默认值为0的字典,常用于统计元素出现频率,若访问未初始化的键,直接返回0,简化了计数逻辑。


from collections import Counter
c = Counter()
c['x'] # 0
c['x'] = 'x'
c['x'] # x

编码与加密算法

base64

base64编码是一种将二进制数据转换为ASCII字符集的常见方法,广泛用于数据传输和存储中的编码需求。


import base64
base64.b64encode(b'hello') # b'aGVsbG8='
base64.b64decode(b'aGVsbG8=') # b'hello'

hashlib

该模块提供了常见的摘要算法实现,如MD5和SHA1等,用于生成数据的哈希值,确保数据完整性与安全性。


import hashlib as hash
md5 = hash.md5()
md5.update('233'.encode('utf-8'))
print(md5.hexdigest()) # e165421110ba03099a1c0393373c5b43

hmac

HMAC(基于哈希的消息认证码)类似于在MD5基础上增加盐值(salt)的机制,用于验证消息的真实性和完整性。


import hmac
password = b'888888'
salt = b'abc'
h = hmac.new(salt, password, digestmod='MD5')
h.hexdigest() # 519151ad14e431254ff684cf4dba2d39

迭代器与上下文管理

itertools


import itertools
n = 0
for item in itertools.count(1):
  print(item) # 1, 2 ... 10
  n += 1
  if n > 10:
    break
n = 0
for item in itertools.cycle('ABC'):
  print(item) # A, B, C, A ...
  n += 1
  if n > 10:
    break
n = 0
for item in itertools.repeat('A'):
  print(item) # A, A, A ...
  n += 1
  if n > 10:
    break
# 组合多个可迭代对象
for item in itertools.chain('ABC', 'XYZ'):
  print(item) # A, B, C, X, Y, Z

contextlib

该模块用于实现with语句所需的上下文管理器。通过contextmanager装饰器,可以以简洁的方式封装资源获取与释放逻辑,简化代码结构。


from contextlib import contextmanager
@contextmanager
def withable(name):
  yield name
  print('end')
with withable('x') as res:
  print(res) # x, end

网络请求与第三方库

urllib

urllib模块中的request子模块可用于实现HTTP客户端功能,支持发起网络请求并处理响应。


from urllib import request
with request.urlopen('https://amsimple.com') as res:
  data = res.read()
  print('Status:', res.status, res.reason)
  for k, v in res.getheaders():
    print('%s: %s' % (k, v))

第三方模块

  • Pillow:图片处理
  • requests:比urllib中的request更强大
  • chardet:对字符串进行编码识别
  • psutil: 更便捷获取系统相关信息

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对本站的支持。如果你想了解更多相关内容请查看下面相关链接

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。