我正在尝试使用python创建一个简单的komodo edit程序,当它运行时将在命令输出中打印出10秒的时间。
代码如下:
import time
seconds = 0
while seconds != 10:
time.sleep(1)
seconds += 1
print(">", seconds)
当我在komodo edit中运行此命令时,它不会按要求打印出数字。
我希望数字1在1秒后打印,数字2在2秒后打印,依此类推。
相反,它将在10秒钟后打印出所有数字(1-10)。
我已经在python IDLE中运行了这个完全相同的程序,它可以正常工作,每秒打印一个数字。
我在做什么错或者我不了解/不知道什么?
最佳答案
该程序可能在不相信其输出连接到终端的环境中运行,因此stdout
默认为块缓冲,而不是行缓冲。由于您输出的数据很少,因此缓冲区永远不会填满,只会在程序退出前才刷新。
最简单的解决方法是将flush=True
参数添加到您的print
调用中,以便在每个print
之后显式刷新缓冲区:
print(">", seconds, flush=True)
关于python - 在komodo中使用time.sleep()编辑?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51716809/