假設我有一個打印出一些類似於這個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