如何在没有换行符的情况下使用print语句并立即执行此操作?
因为:
print("first", end=" ")
time.sleep(5)
print("second")
将在5秒后打印:
first second
但是我想写'第一',等待五秒钟,然后写'第二'......
答案 0 :(得分:4)
您需要刷新stdout
:
print("first", end=" ", flush=True)
stdout
是行缓冲的,这意味着每次打印换行符时都会将缓冲区刷新到屏幕上。如果您不打印换行符,则需要手动刷新。
对于 尚未使用Python 3.3或更新版本的任何人,flush
关键字参数在3.3中是新的。对于早期版本,您可以明确地刷新stdout
:
import sys
print("first", end=" ")
sys.stdout.flush()
答案 1 :(得分:-1)
你也可以这样做:
import sys, time
sys.stdout.write("First ")
time.sleep(5)
sys.stdout.flush()
sys.stdout.write("Second\n")