[pyar] redireccionar stdout a un proceso python

Santiago Paleka santiagopaleka en gmail.com
Mie Oct 9 10:33:48 ART 2013


El 9 de octubre de 2013 10:29, Matías Iturburu <maturburu en gmail.com>escribió:
>
>
>
> El 9 de octubre de 2013 09:51, Daniel Moisset <dmoisset en machinalis.com>escribió:
>
>> [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
>>
>
> 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.
>
>
>>
>>
>> No, el interprete no se bloquea, subprocess te devuelve un objeto que se
está ejecutando, y vos podés seguir con lo tuyo, el tema es que para
hacerle un read si, espera a que termine el proceso.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20131009/fd761c6f/attachment-0001.html>


More information about the pyar mailing list