tempfile namedtemporaryfile example python temporary-files

python - namedtemporaryfile - tempfile ruby



¿Cómo usar tempfile.NamedTemporaryFile() de Python? (1)

"Ese nombre se puede recuperar del miembro del nombre del objeto de archivo".

significa que puedes obtener el nombre del archivo temporal creado así:

In [4]: import tempfile In [5]: tf = tempfile.NamedTemporaryFile() In [6]: tf.name # retrieve the name of the temp file just created Out[6]: ''c://blabla//locals~1//temp//tmptecp3i''

Nota : de forma predeterminada, el archivo se eliminará cuando se cierre. Sin embargo, si el parámetro de delete es Falso, el archivo no se elimina automáticamente. Consulte la documentación de Python sobre esto para obtener más información.

Ya que puede recuperar el nombre de cada uno de los 50 archivos temporales que desea crear, puede guardarlos, por ejemplo, en una lista, antes de usarlos más tarde (como usted dice). Solo asegúrese de establecer el valor de delete consecuencia para que los archivos no desaparezcan cuando los cierre (en caso de que planee cerrarlos y luego vuelva a abrirlos).

Aquí expliqué cómo crear nombres de archivos temporales con más detalle. La mejor manera de generar nombres de archivos aleatorios en Python

Estoy trabajando en un script de Python que necesita crear aproximadamente 50 archivos temporales distintos, que se agregan con frecuencia durante el curso del script y se combinan al final. Estoy seguro de que el módulo tempfile puede hacer lo que necesito, pero no he podido averiguar cómo leer la documentación.

Quiero usar archivos temporales, en lugar de variables, para conservar la memoria del sistema, ya que estos fragmentos de datos crecen a medida que el script procesa decenas de miles de otros archivos.

El siguiente fragmento de código es el truco que estoy utilizando actualmente para crear estos archivos (sin tiempo) en un directorio no temporal:

item = (string from another file) # string must id file for future use tmpfile = ''tmpfiles/'' + item if item not in totalitems: totalitems.add(item) with open(tmpfile, ''w'') as itemfile: output = some stuff tmpfile.write(output) else: with open(tmpfile, ''a'') as itemfile: output = different stuff tmpfile.write(output)

Creo que lo que necesito es tempfile.NamedTemporaryFile() . Según la documentation :

Ese nombre se puede recuperar del miembro del nombre del objeto de archivo.

Desafortunadamente, no entiendo lo que eso significa. Solo necesito poder volver a llamar a cada archivo más tarde cuando me encuentre con su "elemento" correspondiente nuevamente en los archivos que estoy procesando. Supongo que esto es bastante sencillo y solo estoy siendo denso. En caso de que importe, tengo versiones de este script para Python 2.7.1 y 3.2.3. Solo necesito que uno u otro funcione; Creé tanto como un ejercicio de aprendizaje.