[Python-es] duda con subprocess.Popen

Arnau Sanchez pyarnau en gmail.com
Mar Ene 25 18:33:09 CET 2011


On Tue, 25 Jan 2011 17:13:39 +0000 Jose Gomez-Dans wrote:

>  p = subprocess.Popen( cmd,  stdout = subprocess.PIPE, \
>             stdin=subprocess.PIPE )
> p.stdin.write ( run_file )
> while True:
>         o = p.stdout.readline()
>         if o == '' and p.poll() != None:
>              break
>         print o, # Imprime una línea de stdout del subproceso lanzado arriba

En esos casos iter() es bastante útil:

popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE)
popen.stdin.write(indata)
for line in iter(popen.stdout.readline, ""):
    print line,

Pero de todas formas él necesita esto para pygtk, así que no le sirve porque
tiene que devolver el control al GUI inmediatamente o se queda congelado.


Más información sobre la lista de distribución Python-es