Skip to content

常用库介绍

Python 拥有丰富的库生态系统。本章整理了前端开发者最常用的标准库和第三方库,按使用场景分类,并标注推荐优先级。

库分类总览

快速选择指南

我该学哪个?

你的需求推荐库备选
做 REST API⭐ FastAPI + PydanticFlask, Django
发 HTTP 请求⭐ httpxrequests, aiohttp
写测试⭐ pytestunittest
做 CLI 工具⭐ typer + richclick
操作数据库⭐ SQLAlchemypymongo, redis-py
处理数据表格⭐ pandaspolars
读写 JSON🔥 json (标准库)-
路径操作🔥 pathlib (标准库)os.path
正则匹配🔥 re (标准库)-
日期时间🔥 datetime (标准库)-
环境变量⭐ python-dotenv-

标识说明

  • 🔥 = 标准库重点必学
  • ⭐ = 第三方库推荐首选

标准库

Python 内置的标准库,无需安装即可使用。

🔥 高频必学

这些是日常开发中几乎每天都会用到的库:

用途JS 对应文档
pathlib路径操作path.join()pathlib
jsonJSON 解析JSON.parse()json
datetime日期时间Date / dayjsdatetime
re正则表达式RegExpre
os/sys系统接口processos/sys
python
# 日常开发常用示例
from pathlib import Path
import json
from datetime import datetime
import re

# 路径操作
config_path = Path("config") / "settings.json"
if config_path.exists():
    data = json.loads(config_path.read_text())

# 日期处理
now = datetime.now()
formatted = now.strftime("%Y-%m-%d %H:%M:%S")

# 正则匹配
emails = re.findall(r'\b[\w.-]+@[\w.-]+\.\w+\b', text)

📦 常用工具

经常会用到的工具库:

用途典型场景文档
collections增强容器Counter、defaultdictcollections
itertools迭代工具排列组合、分组itertools
functools函数工具缓存、偏函数functools
subprocess执行命令调用系统命令subprocess
shutil文件操作复制、移动、压缩shutil
python
from collections import Counter, defaultdict
from functools import lru_cache
import subprocess

# 统计词频
word_counts = Counter(["apple", "banana", "apple"])
# Counter({'apple': 2, 'banana': 1})

# 带默认值的字典
graph = defaultdict(list)
graph["a"].append("b")  # 无需检查 key 是否存在

# 函数缓存
@lru_cache(maxsize=128)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

# 执行系统命令
result = subprocess.run(["git", "status"], capture_output=True, text=True)
print(result.stdout)

📚 按需学习

特定场景才需要的库:

分类用途文档
数学计算math, random, decimal数学函数、随机数、精确计算数学与随机
并发编程threading, multiprocessing多线程、多进程并发编程
网络编程urllib, socketURL处理、底层网络网络编程
数据存储sqlite3, pickle本地数据库、序列化sqlite3
工具函数hashlib, base64, copy哈希、编码、拷贝工具函数

第三方库

需要通过 uv addpip install 安装的库。

⭐ Web 开发

构建 Web API 和后端服务:

定位推荐场景文档
FastAPI现代 API 框架新项目首选FastAPI
Pydantic数据验证配合 FastAPIPydantic
Flask轻量框架小型项目/原型Flask
Django全栈框架需要 Admin 后台Django
python
# FastAPI + Pydantic 示例
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class User(BaseModel):
    name: str
    email: str
    age: int | None = None

@app.post("/users")
async def create_user(user: User):
    return {"message": f"Created user {user.name}"}

⭐ HTTP 客户端

发送 HTTP 请求:

特点推荐场景文档
httpx同步/异步兼容新项目首选httpx
requests最简单易用简单同步请求requests
aiohttp纯异步高并发场景aiohttp
python
# httpx 示例
import httpx

# 同步
resp = httpx.get("https://api.example.com/users")
data = resp.json()

# 异步
async with httpx.AsyncClient() as client:
    resp = await client.get("https://api.example.com/users")
    data = resp.json()

⭐ 数据库

数据库操作:

数据库推荐场景文档
SQLAlchemySQL 数据库ORM 首选SQLAlchemy
pymongoMongoDB文档数据库PyMongo
redis-pyRedis缓存/队列redis-py
python
# SQLAlchemy 示例
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base, Session

Base = declarative_base()

class User(Base):
    __tablename__ = "users"
    id = Column(Integer, primary_key=True)
    name = Column(String(50))

engine = create_engine("sqlite:///app.db")
Base.metadata.create_all(engine)

with Session(engine) as session:
    user = User(name="Alice")
    session.add(user)
    session.commit()

⭐ 测试

测试与代码质量:

用途推荐场景文档
pytest测试框架所有测试场景pytest
pytest-mockMock 工具单元测试pytest-mock
coverage覆盖率CI/CDcoverage
python
# pytest 示例
import pytest

def add(a, b):
    return a + b

def test_add():
    assert add(1, 2) == 3
    assert add(-1, 1) == 0

@pytest.fixture
def user():
    return {"name": "Alice", "age": 30}

def test_user_name(user):
    assert user["name"] == "Alice"

⭐ CLI 工具

构建命令行应用:

特点推荐场景文档
typer类型提示驱动新项目首选typer
rich终端美化美化输出rich
click功能完整复杂 CLIclick
python
# typer + rich 示例
import typer
from rich import print

app = typer.Typer()

@app.command()
def hello(name: str, count: int = 1):
    for _ in range(count):
        print(f"[green]Hello[/green] [bold]{name}[/bold]!")

if __name__ == "__main__":
    app()

⭐ 数据处理

数据分析与处理:

用途推荐场景文档
pandas数据分析表格数据处理pandas
numpy数值计算数学运算numpy
polars高性能大数据集polars
python
# pandas 示例
import pandas as pd

# 读取 CSV
df = pd.read_csv("data.csv")

# 筛选和分组
result = (
    df[df["age"] > 18]
    .groupby("city")
    .agg({"salary": "mean"})
)

⭐ 配置管理

配置与环境变量:

用途推荐场景文档
python-dotenv环境变量.env 文件python-dotenv
PyYAMLYAML 解析配置文件PyYAML
tomlTOML 解析pyproject.tomltoml
python
# python-dotenv 示例
from dotenv import load_dotenv
import os

load_dotenv()  # 加载 .env 文件

database_url = os.getenv("DATABASE_URL")
api_key = os.getenv("API_KEY")

Node.js 对照表

场景PythonNode.js
包管理uv / pipnpm / pnpm
Web 框架FastAPIExpress / Fastify
HTTP 客户端httpxaxios / fetch
ORMSQLAlchemyPrisma / TypeORM
测试框架pytestJest / Vitest
CLI 框架typercommander / oclif
数据验证PydanticZod
终端美化richchalk + ora
路径操作pathlibpath
JSON 解析jsonJSON
环境变量python-dotenvdotenv

安装示例

bash
# 使用 uv(推荐)
uv add fastapi uvicorn
uv add httpx
uv add pytest --dev

# 或使用 pip
pip install fastapi uvicorn httpx pytest

下一步

学习文档整合站点