que tienen éxito se ejecutan varios scripts python les llama desde un script de base utilizando el módulo de subproceso:¿Cómo puedo generar nuevos shells para ejecutar scripts de Python desde un script python base?
subprocess.popen([sys.executable, 'script.py'], shell=True)
Sin embargo, cada una de estas secuencias de comandos ejecuta algunas simulaciones (archivos .exe desde un C++ aplicación) que generan una cierta salida a la cáscara. Todos estos resultados están escritos en el shell base desde donde he lanzado esos scripts. Me gustaría generar un nuevo shell para cada script. Intenté generar nuevos shells utilizando el atributo shell = True al llamar a subprocess.call (también intenté con popen) pero no funciona.
¿Alguna idea sobre cómo obtener un nuevo shell para cada proceso generado con subprocess.call?
Gracias.
Editar: Estaba leyendo el documento sobre stdin y stdout como lo sugirió Spencer, y encontré una marca que resuelve el problema: subprocess.CREATE_NEW_CONSOLE. Tal vez redirigir las tuberías también hace el trabajo, pero esta parece ser la solución más simple (al menos para este problema específico). Acabo de probarlo y funcionó perfectamente:
subprocess.popen([sys.executable, 'script.py'], creationflags = subprocess.CREATE_NEW_CONSOLE)
Thanks everybody!
Qué quiere decir que desea ejecutar los scripts en diferentes ventanas de terminal? Si es así, ¿qué programa de terminal estás usando? – unutbu
@unutbu: sí, quiero ejecutar cada script en una ventana de terminal diferente. Estoy usando el terminal básico de Windows (solo ejecuta cmd) – emiguel
@Eder: no sé mucho sobre Windows. ¿Esto ayuda: http://stackoverflow.com/questions/303838/create-a-new-cmd-exe-window-from-within-another-cmd-exe-prompt? (es decir, 'start cmd.exe' o' start python script.py' ...) – unutbu