Módulo Tempfile de Python
El módulo tempfile crea archivos y directorios temporales de forma segura.
import tempfile
Usa tempfile para datos que solo deban existir mientras se ejecuta tu programa, como resultados de pruebas, descargas o archivos intermedios.
TemporaryFile()
TemporaryFile crea un objeto de archivo que se limpia automáticamente.
import tempfile
with tempfile.TemporaryFile(mode='w+t') as temp:
temp.write('hello')
temp.seek(0)
print(temp.read())
hello
El archivo se elimina automáticamente cuando termina el bloque with.
NamedTemporaryFile()
NamedTemporaryFile te da una ruta en disco.
import tempfile
with tempfile.NamedTemporaryFile(mode='w+t') as temp:
print(bool(temp.name))
True
Esto es útil cuando otra API necesita un nombre de archivo en lugar de un objeto de archivo.
TemporaryDirectory()
Los directorios temporales son útiles para pruebas y espacios de trabajo de corta duración.
import tempfile
from pathlib import Path
with tempfile.TemporaryDirectory() as directory:
file_path = Path(directory) / 'notes.txt'
file_path.write_text('draft')
print(file_path.exists())
True
Los archivos dentro del directorio se eliminan junto con él cuando sale el bloque.
Elegir una ubicación temporal
gettempdir() muestra el directorio que usa Python de forma predeterminada.
import tempfile
print(bool(tempfile.gettempdir()))
True