我正在尝试做的是每次打印时添加0.5秒的延迟.但我遇到的问题是它滞后了一段时间然后立刻打印出来.
import time
x = [(0, 1), (2, 3), (4, 5), (6, 7), (8, 7)]
for i in x:
print(i)
time.sleep(0.5)
Run Code Online (Sandbox Code Playgroud)
这应该做什么:
(0, 1)
wait 0.5 seconds
(2, 3)
wait 0.5 seconds
(4, 5)
etc
Run Code Online (Sandbox Code Playgroud)
然而,我的问题是它没有打印第一个并等待0.5并打印下一个,我的工作是等待这么久然后立即打印所有,我想知道什么是解决这个问题的方法.
有些系统会缓冲直到换行.这可能就是你所看到的.
yonili的答案应该可以解决问题.sys.stdout.flush()在每个print语句后添加.
编辑:
为了它的价值,将代码粘贴到我的linux机器上的ipython中给出下面的输出,每行之间打印半秒延迟.
(0, 1)
(2, 3)
(4, 5)
(6, 7)
(8, 7)
Run Code Online (Sandbox Code Playgroud)