[pyar] comunicacion con un proceso
Ale
peralta.alejandro en gmail.com
Jue Feb 10 11:26:29 ART 2011
El día 10 de febrero de 2011 10:51, Matias Graña
<matias.alejo en gmail.com> escribió:
> 2011/2/10 Roberto Alsina <ralsina en netmanagers.com.ar>:
>> On 2/10/2011 10:14 AM, Matias Graña wrote:
> $ cat lento
> #!/bin/bash
> for (( i=0; i<10; i++ )) ; do
> echo $i
> sleep 1
> done
El problema no es python, es tu program en bash que no está haciendo
un flush del stdout, lo esta buffereando.
Fijate que ./lento.sh | tail -f hace lo mismo...
Tendrás que ver como hacer para que echo haga flush del stdout, o
hacer el "lento" en python :-)
Saludos,
>
> Y en python, luego de importar subprocess,
>
>>>> def n():
> p = subprocess.Popen('lento', stdout=subprocess.PIPE,
> stderr=subprocess.PIPE, stdin=subprocess.PIPE, bufsize=0)
> so = p.stdout
> for line in so:
> print line
>
>>>> n()
>
> Yo esperaría que esto vaya tirando los números del 0 al 9 a razón de
> uno por segundo (como hace el comando 'lento' original). Pero no,
> espera 10 segundos y luego imprime todos juntos. Cómo hago para verlos
> a medida que van saliendo?
>
> Matías
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
--
Ale.
More information about the pyar
mailing list