Python Glossary English

все Python 3tempfileфункция

tempfile.NamedTemporaryFile()

временные файлы

Создаёт временный файл с именем в файловой системе: путь f.name можно передать другой функции или программе.

Синтаксис

tempfile.NamedTemporaryFile(mode='w+b', ..., suffix=None, prefix=None, dir=None, delete=True, *, errors=None, delete_on_close=True)

По умолчанию файл удаляется при закрытии, поэтому открыть его по имени второй раз, пока он открыт, нельзя на Windows, а после закрытия его уже нет нигде. С Python 3.12 есть delete_on_close=False: файл переживает close() и удаляется только на выходе из with — так его можно закрыть и отдать другой программе. delete=False оставляет файл навсегда, и удалить его придётся самому через os.remove().

Примеры

import os, tempfile
with tempfile.NamedTemporaryFile(suffix='.txt') as f:
    print(f.name.endswith('.txt'), os.path.exists(f.name))  # → True True
print(os.path.exists(f.name))  # → False — удалён при закрытии
# Python 3.12+
import os, tempfile
with tempfile.NamedTemporaryFile('w', encoding='utf-8', delete_on_close=False) as f:
    f.write('data')
    f.close()
    print(open(f.name, encoding='utf-8').read())  # → data
print(os.path.exists(f.name))  # → False

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности