假设我有一个打印出一些数据的过程,比如这个 ruby 代码。
1.upto(10) {
|i|
puts i
puts "\n"
sleep 0.6
}
我想要一个产生这个过程的python代码,并从中读取数据以打印出来。
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()
这段代码的问题是它没有一个一个地打印数字。似乎python在最后一点打印出所有缓冲数据。
有没有办法在不缓冲的情况下打印出生成进程的输出?