このルビコードのようなデータを出力するプロセスがあるとしましょう。
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()
このコードの問題は、番号を 1 つずつ出力しないことです。python は最後の時点でバッファリングされたすべてのデータを出力するようです。
バッファリングせずに生成されたプロセスの出力を出力する方法はありますか?