Tengo un programa que escribe en stdout y posiblemente en stderr. Quiero ejecutarlo desde python, capturando stdout y stderr. Mi código es el siguiente:¿Cómo puedo averiguar por qué el subproceso.Popen wait() espera para siempre si stdout = PIPE?
from subprocess import *
p = Popen(exe, shell=TRUE, stdout=PIPE, stderr=PIPE)
rtrncode = p.wait()
Durante un par de programas, esto funciona bien, pero cuando he añadido una nueva, la nueva cuelga para siempre. Si elimino stdout=PIPE
, el programa escribe su salida a la consola y termina y todo está bien. ¿Cómo puedo determinar qué está causando el bloqueo?
Usando python 2.5 en Windows XP. El programa no lee de stdin ni tiene ningún tipo de entrada de usuario (es decir, "presionar una tecla").
Me ganaste un poco. +1 – MitMaro
El archivo de ayuda instalado con Python 2.5 no tiene ese pequeño tidbit de información. Gracias –
@Graeme, ah sí, los documentos de 2.6 están muy mejorados con los 2.5. –