Модуль Tempfile Python

Модуль tempfile безопасно создает временные файлы и каталоги.

import tempfile

Используйте tempfile для данных, которые должны существовать только пока работает программа, например для результатов тестов, загрузок или промежуточных файлов.

TemporaryFile()

TemporaryFile создает объект файла, который очищается автоматически.

import tempfile

with tempfile.TemporaryFile(mode='w+t') as temp:
    temp.write('hello')
    temp.seek(0)
    print(temp.read())
hello

Файл автоматически удаляется, когда блок with заканчивается.

NamedTemporaryFile()

NamedTemporaryFile дает путь на диске.

import tempfile

with tempfile.NamedTemporaryFile(mode='w+t') as temp:
    print(bool(temp.name))
True

Это полезно, когда другому API нужен именно путь к файлу, а не объект файла.

TemporaryDirectory()

Временные каталоги полезны для тестов и краткоживущих рабочих пространств.

import tempfile
from pathlib import Path

with tempfile.TemporaryDirectory() as directory:
    file_path = Path(directory) / 'notes.txt'
    file_path.write_text('draft')
    print(file_path.exists())
True

Файлы внутри каталога удаляются вместе с каталогом, когда блок заканчивается.

Выбор временного расположения

gettempdir() показывает каталог, который Python использует по умолчанию.

import tempfile

print(bool(tempfile.gettempdir()))
True

Ссылки по теме