我想打印由字母串号(在每个印刷之间的停顿)到终端屏幕,我希望它都是在同一条线上。
我现在有这样的:
sleepMode = "SLEEP MODE..."
activ = "ACTIVATE!"
for l in sleepMode:
print(l, end=" ")
sleep(0.1)
sleep(2)
for l in activ:
print(l, end=" ")
sleep(0.1)
出于某种原因,这并不印刷品之间的循环睡觉,而是似乎要等到环是打印所有的它在一次前完成。
我希望它看起来像它正在实时在屏幕上“输入”。
有什么建议么?
谢谢! 扎克
尝试刷新它
for l in activ:
print(l, end=" ")
sys.__stdout__.flush()
sleep(0.1)
不知道这是否会工作,因为我假设你正在使用py3x,它在我的系统工作正常或不冲洗
冲洗只是强制输出缓冲区写入到屏幕...通常会等到它有一些空闲时间,它转储到屏幕上。 但睡眠被锁定它。 所以通过刷新它,你现在正在迫使内容到屏幕上,而不是让内部调度做到这一点......至少,这是我如何理解它。 林很可能缺少一些细微差别
以下工作:
import time
import sys
sleepMode = "SLEEP MODE..."
activ = "ACTIVATE!"
for l in sleepMode:
sys.stdout.write(l);
time.sleep(0.1)
time.sleep(2)
print
for l in activ:
sys.stdout.write(l);
time.sleep(0.1)
文章来源: How can I print a string using a while loop with an interval in between letters (on the same line) in Python 3.2?