Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。
Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 操作系统,Python 通常会分成一系列的软件包,因此可能需要使用操作系统所提供的包管理工具来获取部分或全部可选组件。
在标准库以外,还存在成千上万并且不断增加的其他组件集(从单独的程序和模块到软件包以及完整的应用程序开发框架),这些组件集可以从Python 包索引 https://pypi.org 获取。
下面的表格罗列了一些常用的模块,但还只是标准库的很少的一部分,具体使用需要根据需求来定。
模块名称 | 描述 | 功能和示例 |
---|---|---|
math |
数学运算函数 | 提供基本的数学运算,如三角函数、对数等。例如:math.sin(90) 返回正弦值 1.0。 |
random |
生成伪随机数 | 生成随机数,可用于模拟随机事件。例如:random.randint(1, 10) 生成1到10之间的随机整数。 |
os |
操作系统功能 | 提供与操作系统交互的功能,如文件和目录操作。例如:os.listdir('.') 返回当前目录下的文件列表。 |
sys |
提供 Python 解释器的变量和函数 | 提供访问和操作 Python 解释器的变量和功能。例如:sys.argv 包含命令行参数的列表。 |
datetime |
处理日期和时间 | 提供处理日期和时间的类和函数。例如:datetime.now() 返回当前日期和时间。 |
time |
处理时间和时间戳 | 提供处理时间和时间戳的函数。例如:time.sleep(2) 暂停程序执行 2 秒。 |
calendar |
处理日期和时间的日历函数 | 提供处理日期和时间的日历功能。例如:calendar.isleap(2023) 判断2023年是否为闰年。 |
collections |
高性能容器数据类型 | 提供额外的数据类型,如命名元组、计数器等。例如:collections.Counter([1, 2, 1, 3, 2, 4]) 统计元素出现次数。 |
itertools |
提供用于操作迭代器的函数 | 提供迭代器操作的工具函数。例如:itertools.product('AB', repeat=2) 返回笛卡尔积。 |
json |
处理 JSON 数据格式 | 提供 JSON 数据的编码和解码功能。例如:json.dumps({"name": "John", "age": 30}, indent=2) 将字典转换为美观的 JSON 字符串。 |
re |
正则表达式操作 | 提供正则表达式的功能,用于模式匹配。例如:re.search(r'\d+', 'Age: 30') 匹配字符串中的数字。 |
urllib |
处理 URL | 提供处理 URL 的模块,包括打开、读取、解析 URL。例如:urllib.request.urlopen('https://www.example.com') 打开一个 URL。 |
http |
提供基本的 HTTP 服务器和客户端功能 | 提供创建简单 HTTP 服务器和客户端的功能。例如:http.server.SimpleHTTPRequestHandler 创建一个简单的 HTTP 服务器。 |
socket |
提供套接字编程的接口 | 提供网络编程的功能,包括创建套接字、发送和接收数据。例如:创建一个服务器套接字。 |
email |
处理电子邮件 | 提供创建和解析电子邮件的功能。例如:创建一个简单的文本邮件。 |
sqlite3 |
SQLite 数据库接口 | 提供与 SQLite 数据库交互的功能。例如:连接到数据库、执行 SQL 查询。 |
csv |
处理 CSV 文件格式 | 提供读写 CSV 文件的功能。例如:读取和写入 CSV 文件。 |
xml |
处理 XML 数据 | 提供处理 XML 数据的功能。例如:解析和生成 XML 文件。 |
tkinter |
GUI 编程工具包 | 提供创建图形用户界面的功能。例如:创建一个简单的窗口和按钮。 |
threading |
多线程编程 | 提供创建和管理线程的功能。例如:创建一个简单的线程。 |
multiprocessing |
多进程编程 | 提供创建和管理进程的功能。例如:创建一个简单的子进程。 |
subprocess |
启动和控制子进程 | 提供启动和控制子进程的功能。例如:执行外部命令。 |
logging |
日志记录工具 | 提供记录日志的功能。例如:配置日志记录器并记录消息。 |
unittest |
单元测试框架 | 提供单元测试的功能。例如:编写和运行测试用例。 |
doctest |
用于测试文档中的示例代码 | 提供从文档字符串中提取和运行测试的功能。例如:在文档中编写测试用例。 |
argparse |
命令行参数解析 | 提供解析命令行参数的功能。例如:定义和解析命令行参数。 |
pickle |
对象序列化和反序列化 | 提供将 Python 对象转换为字节流的功能。例如:将对象保存到文件和从文件加载。 |
shutil |
文件操作工具 | 提供对文件和目录进行高级操作的功能。例如:复制、移动文件和目录。 |
gzip |
支持对 GZIP 格式的文件进行压缩和解压缩 | 提供对 GZIP 格式文件的压缩和解压缩功能。例如:压缩和解压缩文件。 |
tarfile |
处理 tar 文件格式 | 提供处理 tar 文件的功能。例如:创建和提取 tar 文件。 |
zipfile |
处理 ZIP 文件格式 | 提供处理 ZIP 文件的功能。例如:创建和提取 ZIP 文件。 |
提供与操作系统交互的功能,包括文件和目录操作。
import os
# 获取当前工作目录
current_directory = os.getcwd()
print("Current Directory:", current_directory)
# 列出目录中的文件
files_in_directory = os.listdir(current_directory)
print("Files in Directory:", files_in_directory)
# 创建目录
os.mkdir("example_directory")
# 删除目录
os.rmdir("example_directory")
提供文件名的模式匹配功能。
import glob
# 匹配当前目录下所有的 .txt 文件
txt_files = glob.glob('*.txt')
print(f"匹配的 .txt 文件:{txt_files}")
sys 提供对 Python 解释器的变量和函数的访问,而 argparse 用于解析命令行参数。
import sys
import argparse
# 使用 sys 获取命令行参数
script_name = sys.argv[0]
print(f"脚本名称:{script_name}")
# 使用 argparse 解析命令行参数
parser = argparse.ArgumentParser(description='描述脚本用途')
parser.add_argument('--input', help='输入文件路径')
args = parser.parse_args()
input_file = args.input
print(f"输入文件路径:{input_file}")
import sys
try:
# 模拟错误
raise ValueError("这是一个错误")
except ValueError as e:
# 将错误信息输出到标准错误流
print(f"发生错误:{e}", file=sys.stderr)
# 终止程序
sys.exit(1)
提供正则表达式的功能,用于模式匹配。
更多关于Python正则匹配可以参考下面博文:
Python基础:正则表达式(regular expression)详解
import re
# 匹配字符串中的数字
result = re.search(r'\d+', 'Age: 30')
if result:
matched_number = result.group()
print(f"匹配到的数字:{matched_number}")
提供数学运算函数
import math
# 计算正弦值
sin_value = math.sin(math.radians(90))
print(f"正弦值:{sin_value}")
提供处理 URL 的模块,包括打开、读取、解析 URL。
from urllib.request import urlopen
# 打开并读取 URL 内容
with urlopen('https://www.example.com') as response:
content = response.read().decode('utf-8')
print(f"URL 内容:{content}")
提供处理日期和时间的类和函数。
from datetime import datetime
# 获取当前日期和时间
current_datetime = datetime.now()
print(f"当前日期和时间:{current_datetime}")
提供对 GZIP 格式的文件进行压缩和解压缩功能。
import gzip
# 压缩文件
with open('example.txt', 'rb') as file:
with gzip.open('example.txt.gz', 'wb') as compressed_file:
compressed_file.writelines(file)
# 解压缩文件
with gzip.open('example.txt.gz', 'rb') as compressed_file:
content = compressed_file.read().decode('utf-8')
print(f"解压缩后的内容:{content}")
用于测试代码段的执行时间
import timeit
# 测量代码执行时间
def example_function():
result = sum(range(1000))
execution_time = timeit.timeit(example_function, number=10000)
print(f"代码执行时间:{execution_time} 秒")
提供单元测试功能
import unittest
# 编写测试用例
class ExampleTestCase(unittest.TestCase):
def test_addition(self):
self.assertEqual(1 + 1, 2)
# 运行测试
if __name__ == '__main__':
unittest.main()
使用 Python 标准库是编写稳健、可维护和跨平台的 Python 代码的关键部分。
官网:
https://docs.python.org/zh-cn/3/library/index.html
菜鸟教程:
https://www.runoob.com/python3/python3-stdlib.html