Сообщить об ошибке.

Модуль tempfile в Python, временные файлы и каталоги

Создание защищенных временных файлов и каталогов для программы

Модуль tempfile создает временные файлы и каталоги. Работает на всех поддерживаемых платформах. Модуль определяет несколько конструкторов высокого уровня, которые обеспечивают автоматическую очистку и могут использоваться в качестве менеджеров контекста. Функции tempfile.mkstemp() и tempfile.mkdtemp() являются функциями более низкого уровня, которые требуют ручной очистки.

Приложения, которым требуются временные файлы для хранения данных, без необходимости делиться этим файлом с другими программами, должны использовать функцию tempfile.TemporaryFile() для создания файлов. Функция создает файл и на платформах, где это возможно, немедленно отменяет связь с ним. Это делает невозможным для другой программы найти или открыть файл, поскольку в таблице файловой системы нет ссылки на него.

Когда требуется несколько временных файлов, может быть удобнее создать один временный каталог с помощью tempfile.TemporaryDirectory() и открыть все файлы в этом каталоге.

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

Примеры:

Вот несколько примеров типичного использования модуля tempfile:

>>> import tempfile
# Создать временный файл и 
# записать в него некоторые данные
>>> fp = tempfile.TemporaryFile()
>>> fp.write(b'Hello world!')
# Читать данные из файла
>>> fp.seek(0)
>>> fp.read()
# b'Hello world!'
# Закройте файл, он будет удален
>>> fp.close()

Создать временный файл, используя менеджер контекста

>>> with tempfile.TemporaryFile() as fp:
...     fp.write(b'Hello world!')
...     fp.seek(0)
...     fp.read()
# b'Hello world!'
>>>
# Файл закрыт и удален

Создать временный каталог с помощью диспетчера контекста

>>> with tempfile.TemporaryDirectory() as tmpdirname:
...     print('created temporary directory', tmpdirname)
>>>
# Каталог и содержимое были удалены