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