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.