it does not work again. Re: help!! getting output from another process line by line, using popen
printf
printf at hongkong.com
Fri Jan 17 09:11:20 EST 2003
Lao Coon wrote:
> cout <cout at netvigator.com> wrote in news:b08ka1$q8l8 at imsp212.netvigator.com:
>
>
>>Help!!
>>
>>There are 2 python scripts, one is to print out the output(output.py),
>>the other is supposed to get std output from output.py line by line.
>>However, it only get all the result after 40 seconds. Not during the
>>executing process. Any ideas?
>>
>>===========output.py==============
>>#! /usr/bin/python
>>
>>import time
>>
>>for i in range(1,20,1):
>> print i
>> time.sleep(2)
>>
>>================monitor.py===============
>>#! /usr/bin/python
>>
>>import os
>>import sys, string
>>cmd="python output.py"
>>
>>handle = os.popen(cmd, 'r', 1)
>>for line in handle:
>> print line,
>>handle.close()
>
>
> This has something to do with the way the output is returned here..
> When you say "for line in handle" read() is called, it waits
> until everything has been received and then returns it as a list(only once).
> To fix it explicitly call readline() instead.
>
> HTH
> Lao
if you mean that "handle = os.popen(cmd, 'r', 1).readlines()", it wont
work. it waits till finish running cmd, then go to the "for loop".
thanks anyway
More information about the Python-list
mailing list