visual studio microsoft guia espaƱol descargar community python subprocess

studio - Lectura no bloqueada del proceso mediante subproceso en Python



visual studio installer (3)

El iterador de archivos está haciendo algún búfer interno por sí mismo . Prueba esto:

line = p.stdout.readline() while line: print line line = p.stdout.readline()

Estoy tratando de leer un proceso que produce resultados largos y que requieren mucho tiempo. Sin embargo, quiero capturar su salida como y cuando se produce. Pero usar algo como lo siguiente parece ser amortiguar la salida del comando, así que termino obteniendo las líneas de salida de una vez:

p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, bufsize=0) for line in p.stdout: print line

Estoy probando esto en MacOS 10.5



Por lo general, cada programa hará más almacenamiento en búfer en sus canales de entrada y / o salida que lo que parece desear ... ¡a menos que sea engañado creyendo que dicho canal es en realidad un terminal!

Para el propósito de "engañar con una buena causa", use pexpect - funciona bien en una Mac (la vida es más difícil en Windows, aunque hay soluciones que pueden ayudar incluso allí), afortunadamente no necesitamos insistir en ellas como utiliza una Mac en su lugar).