El 25 de octubre de 2010 19:25, Jose Caballero
<jcaballero....@gmail.com>escribió:

>
>
> El 25 de octubre de 2010 19:20, Ricardo Cárdenes Medina <
> ricardo.carde...@gmail.com> escribió:
>
>
>>
>> 2010/10/26 Ricardo Cárdenes Medina <ricardo.carde...@gmail.com>
>>
>>
>>>
>>> 2010/10/26 Jose Caballero <jcaballero....@gmail.com>
>>>
>>>
>>>
>>>> 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)
>>>>
>>>>
>>> Hay dos problemas aquí. Por un lado está el de la lectura, que se
>>> resolvería con algo como lo que te ha comentado Arnau. Por otro lado está el
>>> de la producción del texto, que *TAMBIÉN* se ve afectada por los búfers.
>>>
>>> Si quieres que la cosa funcione y tienes control sobre el lado que
>>> produce el texto, asegúrate de volcar (flush) el búfer de stdout tras cada
>>> bloque de texto que quieras enviar.
>>>
>>>
>> Nota, en tu ejemplo anterior sería tan sencillo como:
>>
>> #!/usr/bin/env python
>>
>> import sys
>> import time
>> for i in range(3):
>>         print time.time()
>>         sys.stdout.flush()
>>         time.sleep(3)
>>
>>
>>
>
> Muchísimas gracias.
> Lo acabo de probar y parece que funciona. No conocía flush().
> Ya estoy más cerca de resolver mi problema. Gracias por la ayuda.
>
>

Ya estoy más cerca de resolver mi problema  =>  me queda por averiguar como
capturar el return code del comando ejecutado con Popen()
_______________________________________________
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