módulo de subproceso: uso del método de llamada con objetos de archivos temporales

StackOverflow https://stackoverflow.com/questions/1049648

  •  20-08-2019
  •  | 
  •  

Pregunta

He creado archivos temporales con nombre, con el método NamedTemporaryFile de bibliotecas temporales. Les escribí para limpiar los tampones, y no los cerré (o podrían desaparecer)

Estoy tratando de usar el módulo subprocess para llamar a algunos comandos de shell utilizando estos archivos generados.

subprocess.call('cat %s' % f.name) siempre falla diciendo que el archivo temporal nombrado no existe.

os.path.exists(f.name) siempre devuelve verdadero. Puedo ejecutar el comando cat en el archivo directamente desde el shell.

¿Hay alguna razón por la cual el módulo <=> no funcionará con archivos temporales?

¿Hay alguna forma de hacerlo funcionar?

Gracias de antemano.

¿Fue útil?

Solución

¿Está utilizando la opción shell = True para el subproceso?

Otros consejos

¿Por qué no crea sus NamedTemporaryFile s con el parámetro opcional delete=False? De esa manera, puede cerrarlos de manera segura sabiendo que no desaparecerán, usarlos normalmente después y desvincularlos explícitamente cuando haya terminado. De esta manera, todo funcionará multiplataforma también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top