2017-07-24 134 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)