本文介绍: Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录显示的。这个库包含多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统功能例如文件 I/O,此外还有大量以 Python 编写模块,提供了日常编程中许多问题标准解决方案。其中有些模块经过专门设计通过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序可移植性。Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件

在这里插入图片描述

1. 标准库介绍

  Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录显示的。这个库包含多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统功能例如文件 I/O,此外还有大量以 Python 编写模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计通过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序可移植性。
  Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 操作系统,Python 通常会分成一系列软件包,因此可能需要使用操作系统所提供的包管理工具获取部分或全部可选组件。
  在标准库以外,还存在成千上万并且不断增加的其他组件集(从单独的程序和模块到软件包以及完整应用程序开发框架),这些组件集可以从Python 包索引 https://pypi.org 获取

2. 常见的一些标准库

  下面的表格罗列了一些常用的模块,但还只是标准库的很少的一部分,具体使用需要根据需求来定。

模块名称 描述 功能示例
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 文件。

3. 部分模块的示例

3.1 操作系统 – os

  提供与操作系统交互的功能,包括文件和目录操作。

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")

3.2 文件通配符 – glob

  提供文件名模式匹配功能。

import glob

# 匹配当前目录下所有的 .txt 文件
txt_files = glob.glob('*.txt')
print(f"匹配的 .txt 文件:{txt_files}")

3.3 命令行参数 – sys 和 argparse

  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}")

3.4 错误输出重定向程序终止 – sys

import sys

try:
    # 模拟错误
    raise ValueError("这是一个错误")
except ValueError as e:
    # 将错误信息输出到标准错误流
    print(f"发生错误:{e}", file=sys.stderr)
    # 终止程序
    sys.exit(1)

3.5 字符串正则匹配 – re

  提供正则表达式的功能,用于模式匹配
  更多关于Python正则匹配可以参考下面博文
  Python基础:正则表达式(regular expression)详解

import re

# 匹配字符串中的数字
result = re.search(r'd+', 'Age: 30')
if result:
    matched_number = result.group()
    print(f"匹配到的数字{matched_number}")

3.6 数学 – math

  提供数学运算函数

import math

# 计算正弦值
sin_value = math.sin(math.radians(90))
print(f"正弦值:{sin_value}")

3.7 访问互联网urllib

  提供处理 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}")

3.8 日期和时间 – datetime

  提供处理日期和时间的类和函数。

from datetime import datetime

# 获取当前日期和时间
current_datetime = datetime.now()
print(f"当前日期和时间:{current_datetime}")

3.9 数据压缩 – gzip

  提供对 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}")

3.10 性能度量timeit

  用于测试代码段执行时间

import timeit

# 测量代码执行时间
def example_function():
    result = sum(range(1000))

execution_time = timeit.timeit(example_function, number=10000)
print(f"代码执行时间:{execution_time} 秒")

3.11 测试模块 – unittest

  提供单元测试功能

import unittest

# 编写测试用例
class ExampleTestCase(unittest.TestCase):
    def test_addition(self):
        self.assertEqual(1 + 1, 2)

# 运行测试
if __name__ == '__main__':
    unittest.main()

4. 使用标准库注意事项

  使用 Python 标准库是编写稳健、可维护和跨平台的 Python 代码的关键部分。

  1. 版本兼容
      不同版本的 Python 可能会引入新的模块或对现有模块进行更改。确保你的代码适用于你所使用的 Python 版本,查阅相应版本官方文档。
  2. 异常处理
      标准库中的函数和模块可能会引发异常。在使用它们时,确保进行适当的异常处理以防止程序崩溃
  3. 文档查阅
      Python 提供了详细的官方文档,其中包含对每个模块和函数的详细说明。在使用标准库的特定部分之前,请查阅相应的文档以了解其功能和用法
  4. 模块导入
      了解如何正确导入模块是重要的。有时候,你可能只需要导入模块的一部分而不是全部。例如,使用 from module import function 语法
  5. 模块的性能
      一些模块可能会影响程序性能。在处理大量数据或需要高性能的情况下,考虑使用专门设计的库或工具
  6. 移植
      虽然标准库是 Python 的一部分,但并不是所有模块在所有平台上都是完全相同的。确保你的代码在目标平台上能够正确运行
  7. 虚拟环境
      在项目中使用虚拟环境是一个良好的实践,它可以确保你的项目在不同环境具有相同的依赖关系
  8. 第三方
      在某些情况下,可能有更好第三方库可用,提供了比标准库更强大或更专业的功能。在选择使用标准库还是第三方库时,要根据具体需求和项目要求做出明智的选择
  9. 更新和维护
      定期检查 Python 的更新,并确保你的代码能够在最新版本的 Python 中运行。标准库中的一些模块可能会在后续版本中进行改进或修复 bug
  10. 国际化
      如果你的应用程序涉及到国际化本地化,了解标准库中与这些方面相关的模块,如 locale 和 gettext

5. 参考

  官网
  https://docs.python.org/zh-cn/3/library/index.html
  菜鸟教程
  https://www.runoob.com/python3/python3-stdlib.html
在这里插入图片描述

原文地址:https://blog.csdn.net/Snailandfish/article/details/134646624

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_22012.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注