El módulo tempfile crea archivos y directorios temporales con nombres seguros y APIs portables. Sus context managers eliminan los recursos al finalizar, incluso si una excepción interrumpe el proceso.
from pathlib import Path
from tempfile import TemporaryDirectory
with TemporaryDirectory(prefix="relatorio-") as pasta:
destino = Path(pasta) / "resultado.txt"
destino.write_text("processamento concluído", encoding="utf-8")
print(destino.read_text(encoding="utf-8"))
## A pasta e seu conteúdo já foram removidos.
TemporaryDirectory entrega una ruta y elimina su árbol al salir del bloque with. SpooledTemporaryFile conserva datos en memoria hasta un límite y luego usa disco. NamedTemporaryFile ayuda cuando otra API exige un nombre, pero su reapertura puede variar entre sistemas.
Buenas prácticas
No uses mktemp(): solo devuelve un nombre y deja una carrera antes de crear el archivo. Prefiere interfaces de alto nivel o mkstemp() si necesitas controlar el descriptor y puedes garantizar la limpieza. El almacenamiento temporal no es persistencia, backup ni lugar para secretos duraderos.
Combina esta API con pathlib para gestionar rutas. En pruebas, usa fixtures y monkeypatch de pytest para aislar el filesystem.
La documentación oficial del módulo tempfile, consultada el 22 de julio de 2026, detalla la API y sus garantías.