Let's say that I have a process that prints out some data something like this ruby code.
1.upto(10) {
|i|
puts i
puts "\n"
sleep 0.6
}
I want to have a python code that spawns this process, and read data from it to print it out.
import os
import sys
cmd = "ruby /Users/smcho/Desktop/testit.rb";
pingaling = os.popen(cmd,"r")
while 1:
line = pingaling.readline()
if not line: break
print line,
sys.stdout.flush()
pingaling.close()
The problem of this code is that it doesn't print the number one by one. It seems like that python prints out all the buffered data at the last point.
Is there a way to print out the output of spawned process without buffering?