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.