все 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Сообщить о неточности