Unbuffer stdout?
Greg Ewing (using news.cis.dfn.de)
me at privacy.net
Wed Mar 26 00:48:59 EST 2003
Francis Avila wrote:
>>>>sys.stdout.write( os.popen("yes", 'r', 0).read() )
>
>
> hangs forever (with some disk activity after a while) until you interrupt
> the interpreter. I strongly suspect this is because the output is getting
> trapped in a buffer until the command exits
No, what's happening is that the .read() is trying to
read *all* the output generated by the command... but
the "yes" command generates an infinite amount of
output! So the read() never returns.
There will be some buffering, but probably only a
few K worth. Try doing .readline() in a loop and
printing out each thing that it returns. You
should get some output very quickly.
--
Greg Ewing, Computer Science Dept,
University of Canterbury,
Christchurch, New Zealand
http://www.cosc.canterbury.ac.nz/~greg
More information about the Python-list
mailing list