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

时间:2018-08-06 23:18:03

标签: python python-3.x time komodo komodoedit

我正在尝试使用python创建一个简单的komodo编辑程序,使其在运行时将在命令输出中打印出10秒钟的时间。

代码如下:

import time

seconds = 0

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

当我在komodo edit中运行它时,它不会按要求打印出数字。

我希望数字1在一秒钟后打印,数字2在两秒钟后打印,依此类推。

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

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

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

1 个答案:

答案 0 :(得分:4)

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

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

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