[pyar] redireccionar stdout a un proceso python

leandro moreno moreno.leandro.g en gmail.com
Mie Oct 9 11:25:53 ART 2013


El 9 de octubre de 2013 11:21, Santiago Paleka
<santiagopaleka en gmail.com>escribió:

>
>
>
> El 9 de octubre de 2013 11:06, Facundo Batista <facundobatista en gmail.com>escribió:
>
> 2013/10/9 Facundo Batista <facundobatista en gmail.com>:
>>
>> >> Pero de cualquier manera va a bloquear el intérprete hasta que la
>> ejecución
>> >> del subproceso se complete, no?
>> >> No hay una manera de leer la salida del subproceso a medida que se va
>> >> produciendo, asincrónicamente.
>> >
>> > Sí, porque vos tenés abierto el stdout del otro proceso como un file
>> > handler. O sea, hacés read() de lo que querés. El truco es hacer
>> > read(N), donde N es una cantidad de bytes, no todo, así que te va a
>> > traer parte de eso si es que hay...
>>
>> Para este código en C:
>>
>> """
>> #include "stdio.h"
>> void main(void)
>> {
>>     int i;
>>     for(i=0;i<20;i++)
>>     {
>>         printf("salida %d\r\n",i);
>>         fflush(0);
>>         sleep(1);
>>     }
>> }
>> """
>>
>> (notar el fflush)
>>
>> Esto es lo que digo:
>>
>> >>> pipe = Popen(["./froo.o"], stdout=PIPE)
>> >>> pipe.stdout.read(4)
>> 'sali'
>> >>> pipe.stdout.read(4)
>> 'da 0'
>> >>> pipe.stdout.read(4)
>> '\r\nsa'
>> >>> pipe.stdout.read(4)
>> 'lida'
>> >>> pipe.stdout.read(4)
>>
>> (acá no se vé, pero hay esos reads los tiré enseguida, antes que termine)
>>
>> Slds.
>>
>>
> Facundo,
>
> Si lo hago desde la consola python, como me parece que estás haciendo vos,
> funciona, ahora desde ipython (que es donde estaba probando) y escribiendo
> el programa y ejecutándolo con python, se queda esperando que termine.
>
Me pasa lo mismo Santiago! Desde ipython, o desde un script no tengo el
mismo comportamiento que él.

> probá haciendoló en un .py y correlo, a ver si te hace lo mismo.
> yo hice:
>
> from subprocess import Popen, PIPE
> pipe = Popen(["./prints"],stdout=PIPE)
> while 1:
>     print pipe.stdout.read(4)
>
> Lo ejecuto y nada,
>
>
> _______________________________________________
> 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/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20131009/843a7f60/attachment.html>


More information about the pyar mailing list