Capturar la salida de un programa desde un frontend

Luis Rodrigo Gallardo Cruz rodrigo en lisa.uji.es
Mar Mayo 6 23:40:50 CEST 2003


>>>>> "Carles" == Carles Sadurn <Carles> writes:

    > On dg, 2003-05-04 at 16:52, Miguel Ángel Vilela wrote:
    >> > ¿Cómo se puede capturar la salida de un programa a medida que
    >> se > produce?
    >> 
    >> Puedes abrir el comando con algún popen y leer la salida
    >> stándar. Si quieres leer también la salida de errores añade la
    >> opción 2&>1 a tu programa:
    >> 
    >> child = popen ("script 2&>1 opciones ... ")

    > Esto es lo que intento, pero no lee la salida hasta que el hijo
    > *acaba*: con un 'ls -al', por ejemplo, no hay problema (porque
    > tarda poco en acabar, normalmente); pero mi programita puede
    > tardar días en acabar.

En realidad no es hasta que acaba. Es cuando el programa que emite da
un 'flush' a sus buffers. Si tienes el código, pues basta con que cada
que quieras que la salida aparezca dale un flush.

Cuando lo corres en consola se ve normal por que normalmente el
sistema arregla que si la salida es a terminal se de un flush en cada
fin de linea.




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