Допустим, у меня есть процесс, который распечатывает некоторые данные, например, этот код 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 распечатывает все буферизованные данные в последней точке.
Есть ли способ распечатать выходные данные порожденного процесса без буферизации?