2017-07-24 103 views
3

是否可以更改Python將內容刷新到控制檯的速率?我知道可以將flush = True添加到打印命令(至少在最新版本的Python 3中)以確保打印內容,但是,是否存在可以更改的全局設置,以便更頻繁地將內容提交到屏幕,或者經過一段時間後。 (本質上,我希望更快地刷新內容,或者至少定期刷新內容,但不是每個打印語句都會減慢代碼的速度)。更改python打印刷新率

+0

覆蓋'print'功能,並添加計數器,內置調用'print'帶或不帶'flush'取決於計數器當前值? –

+0

有'-u'選項,但這將使它全部無緩衝,所以可能不是你想要的,除此之外可能類似@tobias_k建議但不知道是否值得... – user3012759

+1

也你可能想考慮不同/更快終端,因爲這可能是比Python更大的罪魁禍首 – user3012759

回答

0

你可以做這樣的事情的玩具例子:

import time 

print_interval = 1 # 1 second 
last_print_time = time.time() 

for i in range(100): 
    time.sleep(0.1) # An arbitrary time-consuming task 
    now = time.time() 
    if now - last_print_time >= print_interval: 
     print('something', flush=True) 
     last_print_time = now 
    else: 
     print('somethine else', flush=False)