在我的python代码中有:
print "Hello"
time.sleep(20)
print "world"
Run Code Online (Sandbox Code Playgroud)
我期望输出为
Hello
Run Code Online (Sandbox Code Playgroud)
然后20秒后
world
Run Code Online (Sandbox Code Playgroud)
但是Hello和world正在控制台中同时打印。
print操作员有效地使用sys.stdout流作为缓冲的输出。对于实时输出,您将要使用sys.stderr未缓冲的流:
import sys, time
sys.stderr.write("Hello ")
time.sleep(20)
sys.stderr.write("world\n")
Run Code Online (Sandbox Code Playgroud)
另外,您也可以在sys.stdout.flush()每次要获取输出的时候通过调用来手动刷新流缓冲区,但是我建议您不要这样做,除非您知道自己在做什么。
有关更多详细信息,请参阅Wikipedia中有关标准流(stdin,stdout和stderr)的文章。
| 归档时间: |
|
| 查看次数: |
639 次 |
| 最近记录: |