Me enteré de que al ejecutar comandos en Python, debería usar un subproceso. Lo que estoy tratando de lograr es codificar un archivo a través de ffmpeg y observar la salida del programa hasta que el archivo esté listo. Ffmpeg registra el progreso en stderr.Salida del subproceso de captura
Si intento algo como esto:
child = subprocess.Popen(command, shell=True, stderr=subprocess.PIPE)
complete = False
while not complete:
stderr = child.communicate()
# Get progress
print "Progress here later"
if child.poll() is not None:
complete = True
time.sleep(2)
la Programm no continúa después de llamar child.communicate() y espera a que se complete el comando. ¿Hay alguna otra forma de seguir la salida?
relacionado: [Python: lee la entrada de transmisión de subprocess.communicate()] (http://stackoverflow.com/q/2715847/4279) – jfs