Python中的实时输出

时间:2013-05-13 12:01:17

标签: python python-2.7

在我的python代码中:

print "Hello"
time.sleep(20)
print "world"

我期待输出为

Hello 

然后20秒后

world

Helloworld同时在控制台中打印。

3 个答案:

答案 0 :(得分:4)

print运算符有效地使用sys.stdout流来缓冲输出。 对于实时输出,您需要使用未缓冲的sys.stderr流:

import sys, time
sys.stderr.write("Hello ")
time.sleep(20)
sys.stderr.write("world\n")

或者,您可以通过每次想要输出时调用sys.stdout.flush()来手动刷新流缓冲区,但我建议您不要这样做,除非您知道自己在做什么。

有关详情,请参阅article in Wikipedia on standard streams (stdin, stdout and stderr)

答案 1 :(得分:0)

您的代码在我的电脑中运行。您可以在打印hello

后尝试直接刷新标准输出
import sys
sys.stdout.flush()

答案 2 :(得分:-1)

确保已从python导入了时间库,然后在两个版本的python上进行尝试,以查看是否会遇到相同的错误。我已经尝试过了,而且效果很好。