Python Glossary English

все Python 3tempfileпонятие

tempfile.SpooledTemporaryFile

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

Временный файл, который держит данные в памяти и сбрасывает их на диск, только когда они превысят max_size.

Синтаксис

tempfile.SpooledTemporaryFile(max_size=0, mode='w+b', buffering=-1, encoding=None, newline=None, suffix=None, prefix=None, dir=None, *, errors=None)

Без max_size (по умолчанию 0) ограничения нет вовсе и всё остаётся в памяти — это не «сразу на диск», как часто думают. Сброс на диск происходит и при вызове fileno(), потому что дескриптору нужен настоящий файл. Удобен для приёма загрузок неизвестного размера: мелкие не трогают диск, крупные не съедают память.

Примеры

import tempfile
with tempfile.SpooledTemporaryFile(max_size=1024) as f:
    f.write(b'small')
    f.seek(0)
    print(f.read())  # → b'small'
    f.rollover()  # принудительно перенести данные на диск
    f.seek(0)
    print(f.read())  # → b'small'

См. также

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