Python 标准库简介

Python 的标准库是随 Python 安装包一同提供的内置模块集合,涵盖了许多通用功能。它让我们在编程时无需重新造轮子,可以直接使用高效、可靠的代码完成许多任务。


1. 什么是标准库?

  • “自带工具箱”:标准库就是 Python 官方为我们提供的一整套工具,安装 Python 后即可使用,无需额外安装。
  • 广泛功能覆盖:从文件操作到网络编程、从数学计算到多线程,几乎可以满足大部分常见开发需求。
  • 跨平台兼容:标准库代码兼容多个操作系统,如 Windows、Linux 和 macOS。

2. 为什么要用标准库?

  1. 节省时间:标准库已经实现了许多复杂功能,我们只需要调用。
  2. 安全可靠:经过官方测试,稳定且性能优良。
  3. 即装即用:无需安装,直接 import 使用。
  4. 学习成本低:有详尽的官方文档和示例。

3. 标准库的主要模块分类

(1) 系统操作

  • os:与操作系统交互。
  • sys:访问 Python 解释器及命令行参数。
  • shutil:文件和目录操作。
  • subprocess:执行外部命令。

示例:os 模块

import os

print("当前工作目录:", os.getcwd())  # 获取当前目录
os.mkdir("test_dir")                 # 创建一个新目录

(2) 文件操作

  • io:文件流操作。
  • os.path:路径操作。
  • glob:文件路径匹配。

示例:os.path 模块

import os.path

file_path = "/home/user/example.txt"
print("文件名:", os.path.basename(file_path))  # 获取文件名
print("目录名:", os.path.dirname(file_path))   # 获取目录名
print("是否存在:", os.path.exists(file_path))  # 检查路径是否存在

(3) 数学计算

  • math:基础数学函数。
  • random:生成随机数。
  • statistics:统计运算。

示例:random 模块

import random

print("生成随机整数:", random.randint(1, 100))
print("生成随机浮点数:", random.uniform(0, 1))

(4) 数据结构

  • collections:高级数据结构(如双端队列)。
  • heapq:堆队列算法。
  • array:高效数组操作。

示例:collections 模块

from collections import Counter

data = ['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
counter = Counter(data)
print("元素统计:", counter)

(5) 时间与日期

  • time:处理时间。
  • datetime:日期与时间操作。
  • calendar:日历操作。

示例:datetime 模块

from datetime import datetime

now = datetime.now()
print("当前时间:", now)
print("格式化时间:", now.strftime("%Y-%m-%d %H:%M:%S"))

(6) 网络编程

  • socket:网络通信。
  • urllib:处理 URL。
  • http:HTTP 协议支持。

示例:urllib 模块

from urllib import request

url = "http://www.python.org"
response = request.urlopen(url)
print("网页内容:", response.read(100).decode("utf-8"))  # 读取前 100 个字符

(7) 文本处理

  • re:正则表达式。
  • json:JSON 数据解析。
  • csv:处理 CSV 文件。
  • htmlxml:解析 HTML 和 XML。

示例:json 模块

import json

data = {"name": "Alice", "age": 25, "city": "Wonderland"}
json_str = json.dumps(data)  # 转为 JSON 字符串
print("JSON 字符串:", json_str)
parsed_data = json.loads(json_str)  # 解析 JSON
print("解析后的数据:", parsed_data)

(8) 并发与多线程

  • threading:线程支持。
  • multiprocessing:多进程支持。
  • asyncio:异步编程。

示例:threading 模块

import threading

def print_numbers():
    for i in range(5):
        print(f"数字:{i}")

thread = threading.Thread(target=print_numbers)
thread.start()
thread.join()  # 等待线程结束

4. 如何使用标准库?

  1. 导入模块:通过 import 模块名 引入。

    import math
    print(math.sqrt(16))  # 输出 4.0
    
  2. 按需导入部分功能:使用 from 模块 import 功能

    from math import pi, sin
    print("圆周率:", pi)
    print("正弦值:", sin(pi / 2))
    
  3. 给模块起别名:用 as 关键字简化命名。

    import numpy as np
    print(np.array([1, 2, 3]))
    

5. 总结

  1. 强大易用:Python 标准库覆盖了大量常见功能,基本可以满足大部分开发需求。
  2. 即装即用:无论是文本处理、网络编程还是多线程,标准库都提供了丰富的工具。
  3. 良好文档支持:可以通过 Python 官方文档 查阅每个模块的详细使用方法。

通过熟练掌握标准库,能显著提升开发效率,写出高效、简洁的代码!