Módulo de archivo temporal de Python

Tempfile es un módulo de Python que se usa en una situación en la que necesitamos leer varios archivos, cambiar o acceder a los datos en el archivo y proporciona archivos de salida basados ​​en el resultado de los datos procesados. Cada uno de los archivos de salida producidos durante la ejecución del programa ya no fue necesario después de que se completó el programa. En este caso, surgió el problema de que se creaban muchos archivos de salida y esto saturaba el sistema de archivos con archivos no deseados que debían eliminarse cada vez que se ejecutaba el programa.

En esta situación, los archivos temporales se usan para crear archivos temporales para que la próxima vez no tengamos que buscar eliminar cuando nuestro programa termine con ellos.

También se puede utilizar un archivo temporal para proteger datos confidenciales. Este módulo contiene muchas funciones para crear archivos y carpetas temporales y acceder a ellos fácilmente.

Creación de archivos temporales

Suponga que su aplicación necesita un archivo temporal para usar dentro del programa, es decir, creará un archivo, lo usará para almacenar algunos datos y luego lo eliminará después de usarlo. Para lograr esto, podemos usar la función TemporalFile().

  • Primero, tenemos que importar el archivo temporal y luego el archivo se crea usando la función Archivo Temporal().
  • El archivo se abre en modo w+b (tanto lectura como escritura en el archivo abierto) de forma predeterminada.
  • Esta función crea un archivo temporal en el directorio temporal y devuelve un objeto de archivo
  • la entrada del archivo en la carpeta temporal se elimina tan pronto como se cierra el objeto de archivo

Código:

Python3

import tempfile
  
temp = tempfile.TemporaryFile()
print('temp:',temp)
print('temp.name:', temp.name)
temp.close()

Producción:

temp: <_io.BufferedRandom name=6>
temp.name: 6

Lectura y escritura de texto sin formato en archivos temporales

¡Al igual que leer o escribir desde un archivo, podemos usar el mismo tipo de llamadas de función para hacer esto desde un archivo temporal también!

  • Cree un archivo temporal y escriba algunos datos en él.
  • Después de escribir, debe rebobinar el identificador del archivo usando seek() para poder leer los datos de nuevo.
  • Vuelva al principio y lea los datos del archivo.
  • Cierra el archivo, será eliminado.

Ejemplo 1:

Python3

import tempfile
  
temp = tempfile.TemporaryFile()
  
try:
    temp.write(b'Hello world!')
    temp.seek(0)
  
    print(temp.read())
finally:
    temp.close()

Producción:

b'Hello world!'

Ejemplo 2:

Python3

import tempfile
  
f = tempfile.TemporaryFile()
  
try:
  f.write(b'Welcome to geeksforgeeks')
  f.seek(0)
  data=f.read()
  print(data)
finally:
  f.close()

Producción:

b'Welcome to geeksforgeeks'

Creación de archivos temporales con nombre 

Si su aplicación abarca varios procesos, o incluso hosts, nombrar el archivo es la forma más sencilla de pasarlo entre partes de la aplicación. La función NamedTemporaryFile() crea un archivo con un nombre, al que se accede desde el atributo de nombre.

  • Primero importe el archivo temporal y luego el archivo se crea usando la función NamedTemporaryFile().
  • NamedTemporaryFile devuelve un objeto similar a un archivo que se puede usar como almacenamiento temporal; sin embargo, a diferencia de TemporaryFile, se garantiza que un archivo creado con NamedTemporaryFile tendrá un nombre visible durante su vigencia.
  • TemporalFile se destruye tan pronto como se cierra el archivo, NamedTemporaryFile tiene soporte para las banderas eliminadas, que por defecto es Verdadero

Ejemplo 1:

Python3

import tempfile
  
print("Creating a named temporary file..")
temp = tempfile.NamedTemporaryFile()
  
print("Created file is:", temp)
print("Name of the file is:", temp.name)
temp.close()

Producción:

Creating a named temporary file..
Created file is: <tempfile._TemporaryFileWrapper object at 0x7ff135ed1710>
Name of the file is: /tmp/tmpg8efl258

Ejemplo 2:

Python3

import tempfile
  
fo = tempfile.NamedTemporaryFile()
print(fo.name)
  
fo.close()

Producción:

/tmp/tmp6nxmoagy

Proporcionar sufijo y prefijo de nombre de archivo

A veces necesitamos agregar un prefijo o sufijo al nombre de un archivo temporal. Nos ayudará a identificar todos los archivos temporales creados por nuestro programa

  • Podemos agregar sufijo o prefijo al nombre de un archivo temporal con nombre, usando los parámetros ‘sufijo’ y ‘prefijo’.
  • Utilice la misma función NamedTemporaryFile definida anteriormente. Lo único que necesitamos agregar son dos parámetros adicionales al llamar a esta función: sufijo y prefijo
  • Por lo tanto, si pasamos los dos argumentos adicionales, el sufijo y el prefijo, a la función NamedTemporaryFile(), automáticamente los agregará al principio y al final del nombre del archivo.

Ejemplo 1:

Python3

import tempfile
  
temp = tempfile.NamedTemporaryFile(prefix="demoPrefix_",
                                   suffix="_demoSuffix")
  
print("Created file is:", temp)
print("Name of the file is:", temp.name)
temp.close()

Producción:

Created file is: <tempfile._TemporaryFileWrapper object at 0x7fbf5d39b6d8>
Name of the file is: /tmp/demoPrefix_t_inxb7v_demoSuffix

Ejemplo 2:

Python3

import tempfile
  
temp=tempfile.NamedTemporaryFile(suffix='_greeks',
                                 prefix='forgreeks_')
print(temp.name)

Producción:

/tmp/forgreeks_4sigabye_greeks

Publicación traducida automáticamente

Artículo escrito por divyasri7702 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *