如何在Python 3中立即使用end =“”进行打印?

时间:2014-03-19 10:20:41

标签: python python-3.3

如何在没有换行符的情况下使用print语句并立即执行此操作?

因为:

print("first", end=" ")
time.sleep(5)
print("second")

将在5秒后打印:

first second

但是我想写'第一',等待五秒钟,然后写'第二'......

2 个答案:

答案 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")