Resumen de la Biblioteca Estándar
Python incluye una gran biblioteca estándar — baterías incluidas para rutas, tiempo, JSON, procesos, análisis sintáctico y más. Utiliza la biblioteca estándar antes de añadir dependencias; conoce qué módulo se encarga de cada tarea.
Receta
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("cargadas claves=%s", list(config))Cuándo usar la biblioteca estándar:
- Rutas de archivos ->
pathlib - Argumentos de CLI ->
argparse - Cliente HTTP para scripts -> considera
urllibde la biblioteca estándar o httpx si las necesidades crecen - Hashing/tokens ->
hashlib,secrets - Orquestación de subprocesos ->
subprocess
Ejemplo de Trabajo
Mapea tareas comunes a módulos en un solo 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))Lo que esto demuestra:
- La biblioteca estándar se compone sin
pip install - Cada importación se mapea a una capacidad de plataforma estable
- Prefiere envoltorios explícitos y tipados en el código de la aplicación sobre scripts únicos
- Actualiza a PyPI cuando la biblioteca estándar carece de características (HTTP/2, base de datos asíncrona)
Análisis Profundo
Mapa de Módulos (Núcleo)
| Necesidad | Módulo |
|---|---|
| Rutas | pathlib, os |
| Tiempo | datetime, zoneinfo |
| Formatos de datos | json, tomllib (3.11+) |
| Patrones de texto | re |
| Procesos | subprocess |
| CLI | argparse |
| Criptografía básica | hashlib, secrets, hmac |
Cuándo Añadir PyPI
- httpx/aiohttp para HTTP de producción
- pydantic para validación
- requests es ergonómico pero solo síncrono
Errores Comunes
- Reinventar la biblioteca estándar de forma deficiente - errores personalizados al unir rutas. Solución: pathlib.
- Instalar dependencias para una sola función -
more-itertoolses útil peroitertoolssuele ser suficiente. Solución: comprueba primero la biblioteca estándar. - Ignorar tomllib para la configuración - TOML está en la biblioteca estándar desde 3.11+. Solución: alineación con pyproject.
- urllib sin tiempos de espera - se cuelga. Solución: siempre establece un tiempo de espera o usa httpx.
- subprocess shell=True - riesgo de inyección. Solución: lista los argumentos,
shell=False.
Alternativas
| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
| Micro-librería de PyPI | La biblioteca estándar carece de una característica | Necesidad de una sola función cubierta |
| Copia de proveedor | Despliegue restringido | La instalación normal por red está bien |
Preguntas Frecuentes
¿Es estable la biblioteca estándar?
Los módulos evolucionan con ciclos de deprecación; lee Novedades por versión de Python (3.14).
¿Dónde está HTTP?
urllib.request para síncrono simple; los servicios de producción usan httpx/requests.
¿tomllib vs configparser?
tomllib para pyproject TOML; configparser para configuración heredada estilo INI.
¿async en la biblioteca estándar?
asyncio, generadores async, algunos protocolos; no todo IO es nativo async.
¿Cómo descubrir módulos?
El índice de la biblioteca de docs.python.org + las páginas enfocadas de esta sección.
¿typing en la biblioteca estándar?
typing, types, dataclasses, enum; no se necesita pydantic para modelos simples.
¿Es pickle parte de la biblioteca estándar?
Sí, pickle — evita datos no confiables; prefiere json para intercambio.
¿logging vs print?
logging para servicios; print para salida de usuario en CLI y scripts rápidos.
¿venv en la biblioteca estándar?
Sí — emparejar con uv 0.6+ externamente para velocidad por herramienta del equipo.
¿Novedades en 3.14?
Consulta las notas oficiales de la versión 3.14 para adiciones a la biblioteca estándar que afecten tus pines.
Relacionados
- pathlib y os - sistema de archivos
- json y Serialización - intercambio de datos
- Mejores Prácticas de la Biblioteca Estándar - reglas de selección
- argparse y configparser - CLI/configuración
Versiones del Stack: Esta página fue escrita para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, y uv 0.6+.