objectif
Utiliser un fichier temporaire en mémoire avec bascule automatique sur disque.
code minimal
from tempfile import SpooledTemporaryFile
f = SpooledTemporaryFile(max_size=1024, mode="w+t", encoding="utf-8")
f.write("x"*2000) # dépasse max_size -> spool sur disque
f.seek(0)
print(f.read().startswith("x")) # attendu: True
f.close()
utilisation
from tempfile import SpooledTemporaryFile
with SpooledTemporaryFile(max_size=10) as f:
f.write(b"hello world")
f.seek(0)
print(f.read().startswith(b"hello"))
variante(s) utile(s)
from tempfile import SpooledTemporaryFile
f = SpooledTemporaryFile()
f.write(b"x")
print(f.tell() == 1)
f.close()
notes
- Pratique pour bufferiser des données avant upload/zip.
- Choisissez max_size selon la mémoire disponible.