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