← retour aux snippets

tempfile: SpooledTemporaryFile (mémoire→disque)

Utiliser un fichier temporaire en mémoire avec bascule automatique sur disque.

python filesystem #tempfile#spool#io

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.