假设我有一个打印出一些类似于这个ruby代码的数据的进程。在Python中没有缓冲的情况下打印出os.popen()的输出
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在最后一点打印出所有缓冲数据。
有没有办法打印输出的产卵过程没有缓冲?
相关:Python的子readlines方法()挂起(http://stackoverflow.com/q/12419198/4279) – jfs 2015-06-12 19:16:43