[pyar] redireccionar stdout a un proceso python

Daniel Moisset dmoisset en machinalis.com
Mie Oct 9 09:51:11 ART 2013


[voy a suponer que hablas de un sistema operativo unix-like]

subprocess esta bien. Lo que probablemente esta pasando es que el proceso
esta buffereando internamente la salida; el programa C que diste de ejemplo
al menos usa printf, que cuando no larga la salida por una tty bufferea en
memoria (bloques de tipicamente 4KB) antes de largar a stdout. asi que por
varios segundos ese problama realmente no envia nada al exterior, y por lo
tanto ni python ni ningun otro proceso puede sacar esos datos. Fijate que
si en el shell haces ./tuprogramaenC | cat pasa lo mismo

D.




2013/10/9 Santiago Paleka <santiagopaleka en gmail.com>

> Hola lista,
>
> Como puedo hacer para ver la salida de un proceso que se ejecuta en la
> terminal, por ejemplo:
>
> #include "stdio.h"
> void main(void)
> {
>     int i;
>     for(i=0;i<200;i++)
>     {
>         printf("salida %d\r\n",i);
>         sleep(1);
>     }
> }
>
> Dentro de un proceso python?
>
> estuve viendo subprocess.Popen pero este espera a que el proceso termine
> para poder ver todo en el subprocess.PIPE, yo necesito poder usar la salida
> en cuanto va saliendo
> Haciendo un read en algún objeto y que sea bloqueante hasta que haya algo
> que leer.
> Probé usando fifos pero no doy pie con bola.
>
> Gracias.
>
> _______________________________________________
> 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/47620ac5/attachment-0001.html>


More information about the pyar mailing list