python - Python 中的实时输出

标签 python python-2.7

在我的 python 代码中有:

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

我期待输出为

Hello 

然后在 20 秒后

world

但是 Helloworld 正在控制台中同时打印。

最佳答案

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) .

关于python - Python 中的实时输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16521575/

相关文章:

python - 如何为 catboost 创建自定义评估指标?

python - 使用 BeautifulSoup 中的 .select() 从网页中提取数字时使用哪些 CSS 选择器?

python - Kivy 应用程序具有多个屏幕

python - 无法在 Python 中使用 Selenium webdriver 登录 Quora

python - 检查对象是否是 Python 2 和 3 中的文件

Python cmd 模块 - 异步事件后恢复提示

Python 3.6 - Sanic Motorengine

python - 当我尝试设置 plt.axes() 时,matplotlib.pyplot plt.bar() 发出警告

python - 为 Python 安装 pip 时出错

python - 在python中顺序打开和关闭应用程序