O módulo tempfile cria arquivos e diretórios temporários com nomes seguros e APIs portáveis. Seus context managers removem recursos ao final, inclusive quando uma exceção interrompe o processamento.

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 o caminho e apaga toda a árvore ao sair do with. Para conteúdo que pode crescer, SpooledTemporaryFile mantém dados em memória até um limite e depois usa disco. NamedTemporaryFile é útil quando outra API exige um nome, mas reabrir o arquivo pode variar entre sistemas.

Boas práticas

Não use mktemp(): ele retorna apenas um nome e permite uma corrida antes da criação. Prefira as interfaces de alto nível ou mkstemp() quando precisar controlar descritor e limpeza manualmente. Arquivos temporários não são armazenamento persistente, backup nem lugar para segredos duradouros.

Combine a API com pathlib para manipular caminhos. Em testes, veja também fixtures e monkeypatch do pytest para isolar o filesystem.

A documentação oficial do módulo tempfile, consultada em 22 de julho de 2026, detalha a API e suas garantias.