在我的python代码中:
print "Hello"
time.sleep(20)
print "world"
我期待输出为
Hello
然后20秒后
world
但Hello
和world
同时在控制台中打印。
答案 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上进行尝试,以查看是否会遇到相同的错误。我已经尝试过了,而且效果很好。