cómo crear un directorio temporal y recibe el nombre de ruta/archivo en PythonCómo crear un directorio temporal y recibe el nombre de ruta/archivo en Python
79
A
Respuesta
136
4
Utilice el módulo tempfile.
19
Para ampliar en otra respuesta, aquí es un ejemplo bastante completo que puede limpiar el tmpdir incluso sobre las excepciones:
import contextlib
import os
import shutil
import tempfile
@contextlib.contextmanager
def cd(newdir, cleanup=lambda: True):
prevdir = os.getcwd()
os.chdir(os.path.expanduser(newdir))
try:
yield
finally:
os.chdir(prevdir)
cleanup()
@contextlib.contextmanager
def tempdir():
dirpath = tempfile.mkdtemp()
def cleanup():
shutil.rmtree(dirpath)
with cd(dirpath, cleanup):
yield dirpath
def main():
with tempdir() as dirpath:
pass # do something here
5
en Python 3.2 y más adelante, hay una ContextManager útil para esto en el stdlib https://docs.python.org/3/library/tempfile.html#tempfile.TemporaryDirectory
Cuestiones relacionadas
- 1. ¿Cómo crear un directorio temporal en hormiga?
- 2. ¿Cómo crear un directorio temporal en C++?
- 3. Crear un directorio temporal en Haskell
- 4. ¿Se puede crear el archivo temporal de flymake en el directorio temporal del sistema?
- 5. ¿Cómo obtener un nombre de archivo temporal?
- 6. Python: ¿Cómo crear un nombre de archivo único?
- 7. ¿Cómo puedo crear automáticamente (y eliminar) un directorio temporal en un Makefile?
- 8. ¿Cómo guardar imágenes y archivos grabados en el directorio temporal?
- 9. Creando un directorio temporal único de C puro en Windows
- 10. ¿Cómo crear un archivo temporal en Java sin el número aleatorio agregado al nombre de archivo?
- 11. En python, crea un archivo temporal en el mismo directorio que otro archivo?
- 12. ¿Cómo cambiar el nombre de un directorio?
- 13. ¿Cómo creo un nombre de archivo temporal en Erlang?
- 14. ¿Cómo crear un std :: ofstream en un archivo temporal?
- 15. Operación temporal en un directorio temporal en el script de shell
- 16. ¿Manera elegante de tomar el nombre del directorio en Python?
- 17. ¿Cómo crear un archivo temporal (para escribir en) en C#?
- 18. Deshabilitar el directorio temporal de MSTest en TeamCity
- 19. ¿Cómo creo un archivo temporal con nombre en Windows en Python?
- 20. Inicio de sesión en el directorio temporal de manera multiplataforma
- 21. Crear archivo temporal y eliminar automáticamente
- 22. Renombrar Directorio con el mismo nombre en mayúsculas o minúsculas
- 23. ¿Cómo crear un archivo de texto temporal en C++?
- 24. Python: ¿Cómo obtener archivos en un archivo sin el directorio?
- 25. nodejs - Nombre de archivo temporal
- 26. Cómo recorrer archivos y cambiarles el nombre en Python
- 27. El directorio temporal persiste en todas las ejecuciones de programas
- 28. Crear un directorio de administración en Rails
- 29. ¿Cómo se obtiene el nombre de archivo de un archivo temporal para usar en Linux?
- 30. ¿Cómo puedo crear un ramdisk en Python?
Si usa esto en una prueba, asegúrese de eliminar (shutil.rmtree) el directorio porque no se elimina automáticamente después de su uso. "El usuario de mkdtemp() es responsable de eliminar el directorio temporal y su contenido cuando termina con él". Consulte: http://docs.python.org/2/library/tempfile.html#tempfile.mkdtemp –
¡Esta debe ser la respuesta aceptada! – gregoltsov
En python3, puede hacer 'con tempfile.TemporaryDirectory() como dirpath:', y el directorio temporal se limpiará automáticamente al salir del administrador de contexto. https://docs.python.org/3.4/library/tempfile.html#tempfile.TemporaryDirectory – Symmetric