我试图用Python在一行上打印多个字符,每个字符之间都有一个延迟。我用的是3.5。
这就是我一直想做的:
import time
for i in range(30):
print("-",end='')
time.sleep(.5)
看着它,我希望"-“将被打印30次,与.5第二次之间的延迟"-”。这一切都在同一条线上。当我尝试这一点时,这个程序似乎会“冻结”15秒钟左右不做任何事情。在这段时间里,我确信程序正在经历这个循环,但是"-"s都是在时间结束后打印的simultaneously。
这是因为end=‘',对吗?有简单的解决办法吗?
发布于 2016-02-09 11:50:58
添加flush=True
,以便不缓冲输出:
import time
for i in range(30):
print("-",end='', flush=True)
time.sleep(.5)
发布于 2016-02-09 11:49:24
输出有(行)缓冲,将sys.stdout.flush()
添加到循环中。
发布于 2016-02-09 11:49:33
这是因为缓冲:系统在得到换行符或缓冲区填满之前不会打印东西。这里没有v3,但是我认为插入一个刷新操作可以解决这个问题。
import time, sys
for i in range(30):
print("-", end="")
sys.stdout.flush()
time.sleep(.5)
https://stackoverflow.com/questions/35300849
复制相似问题