在komodo编辑中使用time.sleep()



我正在尝试使用python在komodo-edit中制作一个简单的程序,当它运行时,将在命令输出中打印出10秒的时间。

代码如下:

import time
seconds = 0
while seconds != 10:
time.sleep(1)
seconds += 1
print(">", seconds)

当我在komodo编辑中运行这个程序时,它不会按照需要打印出数字。

我希望数字1在1秒后打印,数字2在两秒后打印,等等。

相反,它会在10秒后打印出所有数字(1-10(。

我在python IDLE中运行了这个完全相同的程序,它可以正常工作,每秒打印一个数字。

我做错了什么,或者我不理解/不知道什么?

程序可能在其不相信其输出连接到终端的环境中运行,因此stdout默认为块缓冲,而不是行缓冲。由于输出的数据很少,所以缓冲区永远不会填充,只会在程序退出前刷新。

最简单的修复方法是将flush=True参数添加到print调用中,以便在每次print:之后显式刷新缓冲区

print(">", seconds, flush=True)

最新更新