Модуль 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