iPython输出的预期输出和实际输出之间的延迟/差异

时间:2016-05-21 10:45:20

标签: python canopy

我正在使用Enthought Canopy IDE来编写Python,print命令的输出在我预期的时候没有到达ipython输出窗口。最明确的解释方法是举例:

import time

print 1
print 2
time.sleep(1)
print 3

for i in range(10):
    print i
    time.sleep(0.5)

在一秒钟后同时显示初始123,然后在显示下一个0之前有半秒延迟。

(与12的预期即时和同时显示相反,然后在同时显示30之前延迟1秒,然后是第二次延误)

这导致了我的问题,因为我希望在一段耗时的脚本运行之前获取变量的读数,并且在调用print命令后,我无法在不终止程序的情况下显示这些读数。< / p>

任何想法/解决方案?

我在Windows 7上,如果您需要任何其他规格/配置详情,请与我们联系...

谢谢!

1 个答案:

答案 0 :(得分:2)

您可以使用额外的-u参数启动Python解释器,这会为您提供无缓冲的输出(即即时)。 或者,您可以在每sys.stdout.flush()后致电print。甚至可能将它包装在这样的函数中:

from __future__ import print_function
import sys

def print_flush(*args):
    print(*args)
    sys.stdout.flush()