So here it is: handle unbuffered output from a child process. Here is the child process script (bufcallee.py): import time print 'START' time.sleep(10) print 'STOP'
In Perl, I do: open(FILE, "python bufcallee.py |"); while ($line = <FILE>) { print "LINE: $line"; } in which case I get LINE: START followed by a 10 second pause and then LINE: STOP The equivalent in Python: import sys, os FILE = os.popen('python bufcallee.py') for line in FILE: print 'LINE:', line yields a 10 second pause followed by LINE: START LINE: STOP I have tried the subprocess module, the -u on both the original and called script, setting bufsize=0 explicitly but to no avail. I also get the same behavior on Windows and Linux. If anyone can disprove me or show me what I'm doing wrong, it would be appreciated. Jeff -- http://mail.python.org/mailman/listinfo/python-list