改变 Python 的打印刷新频率

4
有没有可能更改Python刷新内容到控制台的速率?我知道可以在print命令中添加flush=True(至少在最新版本的Python 3中)以确保内容被打印,但是是否有全局设置可以更改,使内容更频繁地提交到屏幕上,或者在一定时间后提交。
(基本上,我想要更快地刷新内容,或者按周期间隔刷新,但不是每个单独的print语句,这会减慢代码)。

覆盖print函数并添加一个计数器,根据计数器当前的值来调用带或不带flush的内置print函数? - tobias_k
-u 选项,但这会使所有内容都不带缓冲,所以可能不是你想要的。除此之外,也许可以尝试像 @tobias_k 建议的那样,但不确定是否值得... - user3012759
1
你可能想考虑使用不同/更快的终端,因为这很可能比Python本身造成的问题更大。 - user3012759
1个回答

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接