Python tempfile.TemporaryDirectory: удалить временные файлы

Категория: Python · Язык: Python · Обновлено:

TemporaryDirectory создаёт временную папку и удаляет её содержимое при выходе из with, в том числе после исключения. Используйте её в тестах и конвертерах, которым нужны промежуточные файлы.

Рабочий пример

Python
from pathlib import Path
from tempfile import TemporaryDirectory
with TemporaryDirectory(prefix="report-") as temp136:
    report136 = Path(temp136) / "result.txt"
    report136.write_text("done", encoding="utf-8")
    print(report136.read_text(encoding="utf-8"))  # done
print(Path(temp136).exists())  # False

Каталог создаётся в системном temp по умолчанию. Передайте dir=, если временные файлы должны находиться на том же filesystem для последующего atomic rename.

Частый вопрос

Как оставить временный файл после выхода?

Используйте NamedTemporaryFile с delete=False или скопируйте файл в целевой каталог. Затем удалите его самостоятельно после успешной обработки.