我们说我有这个基本代码:
import time
print("Thinking",end=" ")
for i in range(3):
time.sleep(1)
print(".",end=" ")
time.sleep(1)
print("I have the answer!")
刚才给出了一个例子,因为复制整个事情很长,但在基本层面上,这就是我想要做的事情。在shell中它工作正常,它将打印"思考",等待一秒,打印一个点,再等一下,打印另一个点,依此类推。 但是,在控制台中,它会等待3秒然后立即打印出来,为什么会这样? 我已经发现它必须与" end ="命令,有什么办法可以解决这个问题,但是能够用时间间隔在同一条线上打印东西吗?提前谢谢。
答案 0 :(得分:1)
从3.3开始,更简单的答案是在打印电话中添加flush=True
。
print(".",end=" ", flush=True)
答案 1 :(得分:0)
import sys
并在致电sys.stdout.flush()
后致电print
。
默认情况下,stdout是行缓冲的。这意味着它会在内部缓存写入,直到它看到换行符。只有在写入换行符时,才会对文件进行Python flush
。