1. 程式人生 > >python 的stdout.flush

python 的stdout.flush

python的stdout是有緩衝區的,給你個例子你就知道了

import time
import sys

for i in range(5):
    print i,
    #sys.stdout.flush()
    time.sleep(1)

這個程式本意是每隔一秒輸出一個數字,但是如果把這句話sys.stdout.flush()註釋的話,你就只能等到程式執行完畢,螢幕上會一次性輸出0,1,2,3,4。

如果你加上sys.stdout.flush(),重新整理stdout,這樣就能每隔一秒輸出一個數字了。

flush會及時重新整理,不快取

可以用在網路程式中多執行緒程式,多個執行緒後臺執行,同時要能在螢幕上實時看到輸出資訊。