Visão Geral da Biblioteca Padrão
O Python vem com uma grande biblioteca padrão - baterias incluídas para caminhos, tempo, JSON, processos, análise e muito mais. Use a biblioteca padrão antes de adicionar dependências; saiba qual módulo cuida de cada tarefa.
Receita
from pathlib import Path
import json
import logging
log = logging.getLogger(__name__)
config = json.loads(Path("config.json").read_text(encoding="utf-8"))
log.info("chaves carregadas=%s", list(config))Quando usar a biblioteca padrão:
- Caminhos de arquivo ->
pathlib - Argumentos de linha de comando ->
argparse - Cliente HTTP para scripts -> considere
urllibda biblioteca padrão ou httpx se as necessidades aumentarem - Hashing/tokens ->
hashlib,secrets - Orquestração de subprocessos ->
subprocess
Exemplo de Trabalho
Mapeie tarefas comuns para módulos em um único script.
from __future__ import annotations
import json
import re
import secrets
import subprocess
import sys
from datetime import datetime, timezone
from pathlib import Path
def snapshot_system(tmp: Path) -> dict:
return {
"python": sys.version.split()[0],
"cwd": str(Path.cwd()),
"now_utc": datetime.now(timezone.utc).isoformat(),
"token": secrets.token_hex(8),
"digits": re.findall(r"\d+", "a1b22"),
"ls": subprocess.run(
["ls", str(tmp)],
capture_output=True,
text=True,
check=False,
).stdout.strip(),
}
tmp = Path("/tmp")
print(json.dumps(snapshot_system(tmp), indent=2))O que isso demonstra:
- A biblioteca padrão compõe sem
pip install - Cada importação mapeia para uma capacidade de plataforma estável
- Prefira wrappers tipados e explícitos no código do aplicativo em vez de scripts únicos
- Atualize para PyPI quando a biblioteca padrão não tiver recursos (HTTP/2, banco de dados assíncrono)
Mergulho Profundo
Mapa de Módulos (Núcleo)
| Necessidade | Módulo |
|---|---|
| Caminhos | pathlib, os |
| Tempo | datetime, zoneinfo |
| Formatos de dados | json, tomllib (3.11+) |
| Padrões de texto | re |
| Processos | subprocess |
| CLI | argparse |
| Cripto-geral | hashlib, secrets, hmac |
Quando Adicionar PyPI
- httpx/aiohttp para HTTP de produção
- pydantic para validação
- requests é ergonômico, mas apenas síncrono
Armadilhas
- Reinventar a biblioteca padrão de forma inadequada - bugs de junção de caminhos personalizados. Correção: pathlib.
- Instalar dependências para uma função -
more-itertoolsé bom, masitertoolsgeralmente é suficiente. Correção: verifique a biblioteca padrão primeiro. - Ignorar tomllib para configuração - TOML está na biblioteca padrão a partir do 3.11+. Correção: alinhamento de
pyproject. - urllib sem timeouts - trava. Correção: sempre defina um timeout ou use httpx.
- subprocess com
shell=True- risco de injeção. Correção: liste os argumentos,shell=False.
Alternativas
| Alternativa | Use Quando | Não Use Quando |
|---|---|---|
| Micro-biblioteca PyPI | Biblioteca padrão sem recurso | Necessidade de uma função coberta |
| Cópia de fornecedor | Implantação restrita | Instalação de rede normal ok |
FAQs
A biblioteca padrão é estável?
Os módulos evoluem com ciclos de depreciação - leia Novidades a cada versão do Python (3.14).
Onde está o HTTP?
urllib.request para sincronização simples; serviços de produção usam httpx/requests.
tomllib vs configparser?
tomllib para pyproject TOML; configparser para configuração legada no estilo INI.
async na biblioteca padrão?
asyncio, geradores assíncronos, alguns protocolos - nem todo IO é nativo assíncrono.
Como descobrir módulos?
Índice da biblioteca docs.python.org + páginas focadas nesta seção.
tipagem na biblioteca padrão?
typing, types, dataclasses, enum - pydantic não é necessário para modelos simples.
pickle está na biblioteca padrão?
Sim, pickle - evite dados não confiáveis; prefira json para intercâmbio.
logging vs print?
logging para serviços; print para saída do usuário CLI e scripts rápidos.
venv na biblioteca padrão?
Sim - combine com uv 0.6+ externamente para velocidade por ferramenta da equipe.
Novidades no 3.14?
Verifique as notas oficiais de lançamento do 3.14 para adições à biblioteca padrão que afetam seus pins.
Relacionados
- pathlib & os - sistema de arquivos
- json & Serialização - troca de dados
- Melhores Práticas da Biblioteca Padrão - regras de seleção
- argparse & configparser - CLI/configuração
Versões do Stack: Esta página foi escrita para Python 3.14.0 (3.14 estável, 3.13 em manutenção), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ e uv 0.6+.