Python Glossary English

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

tempfile.mkstemp()

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

Безопасно создаёт временный файл и возвращает пару (дескриптор, путь); удалять файл нужно самому.

Синтаксис

fd, path = tempfile.mkstemp(suffix=None, prefix=None, dir=None, text=False)

Возвращается сырой номер дескриптора ОС, а не файловый объект: его надо закрыть через os.close() или обернуть в open(fd), иначе дескрипторы утекают. Файл никогда не удаляется автоматически — нужен os.remove(path) в finally. Создание атомарно (O_EXCL), поэтому это безопасная замена устаревшей mktemp().

Примеры

import os, tempfile
fd, path = tempfile.mkstemp(suffix='.csv', dir='.')
try:
    with open(fd, 'w', encoding='utf-8') as f:  # закроет и дескриптор
        f.write('a,b')
    print(type(fd).__name__, path.endswith('.csv'))  # → int True
finally:
    os.remove(path)
print(os.path.exists(path))  # → False

См. также

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