Tempfile - Archivos Temporales
Python tiene un módulo específico para manejar archivos y directorios temporales. Este módulo se llama temptfile, el cual debe ser importado para su uso:
Archivos con nombre
Los archivos temporales se crean con la función NamedTemporaryFile():
# Crear un archivo temporal con nombre
archivo_temporal = tempfile.NamedTemporaryFile(
mode = "w+b", # modo de apertura
prefix = "", # parte del nombre de archivo
suffix = "", # extensión de archivo
delete = True # si se cierra el archivo se elimina el archivo
)
Para conocer el nombre de archivo asignado y poder interactuar con él se usa el método .name:
Cabe señalar que el nombre de archivo incluye caracteres aleatorios entre lso campos prefix y suffix, por ello éstos no son obligatorios. El archivo no puede ser renombrado una vez creado.La asignación de datos se realiza con el método .write():
El archivo temporal se elimina tan pronto se produzca el cierre del archivo temporal. Para alterar este comportamiento existe el parámetro delete:
# Crear un archivo temporal con nombre
archivo_temporal = tempfile.NamedTemporaryFile(delete = False)
Ejemplo aplicado: guardar un archivo de imagen PNG como archivo temporal
-
Creación de archivo temporal
-
Asignación de datos
A. Uso de la función open() para leer data binaria:
# apertura archivo en modo lectura binaria archivo_disco = open('imagen.png', "rb") data = archivo_disco.read() # Asignacion de data al archivo archivo_temporal.write( data ) archivo_temporal.seek(0)
B. Delegar la transferencia de datos a bibliotecas específicas. Ejemplo: OpenCV
Importante: Para usar esta opción se necesita especificar correctamente el parámetro suffix al crear el archivo temporal
Ubicacion de archivos temporales en el sistema
En GNU/Linux los archivos temporales se encuentran dentro del directorio /tmp. Éstos pueden listarse en consola con dos comandos:
En el caso de Windows los archivos temporales solían encontrarse en la carpeta 'Temp' dentro de la carpeta de Windows. La lista desde consola se hace con:
Windows 10 movió la ruta de los archivos temporales a la carpeta '\AppData\Local' dentro de la carpeta del usuario actual:Enlaces útiles:
Documentación oficial - Modulo Tempfile
DelfStack - Cómo crear archivos temporales en Python
Aprender Linux - directorio TMP de Linux todo lo que necesita saber