El 25 de octubre de 2010 18:38, Arnau Sanchez <pyar...@gmail.com> escribió:

> On Mon, 25 Oct 2010 17:58:34 -0400 Jose Caballero wrote:
>
> > Sí, estoy intentándolo con subprocess. Capturar el output y el RC lo
> > consigo. De hecho eso ya lo tenía con popen2. Ver la salida "en directo"
> es
> > lo que me está dando más problemas...
>
> popen = subprocess.Popen(command, stdout=subprocess.PIPE)
> for line in iter(popen.stdout.readline, ""):
>    print line,
>


Nope. Me imprime todo el output al final, no a medida que se va generando.
Por ejemplo, imaginemos que el command es "./cmd.py"
donde cmd.py es algo como esto (esto es un ejemplo tonto para probar)

---------------------------------------------------
#!/usr/bin/env python

import time
for i in range(3):
        print time.time()
        time.sleep(3)
---------------------------------------------------

Si intento ejecutarlo desde un programa main.py que es algo como esto:

---------------------------------------------------
#!/usr/bin/env python

import subprocess

popen = subprocess.Popen('./cmd.py', stdout=subprocess.PIPE)
for line in iter(popen.stdout.readline, ""):
   print line,
---------------------------------------------------

Los tres valores del tiempo se muestran en una sola vez, al final, en lugar
de uno cada tres segundos, que es lo que necesito.
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a