为什么`print`内容不会立即显示在终端中?

时间:2014-09-17 18:00:33

标签: python macos terminal ipython

我有一个用于模拟的python脚本,运行for循环需要相当长的时间,并且每个循环需要不同的时间来运行,所以我在每个循环之后打印一个.作为一种方式在脚本运行时监视它运行的速度以及它在for语句中的运行程度。

for something:
    do something
    print '.',

然而,当我在终端的iPython中运行脚本时,点不会逐个打印,而是在循环结束时立即打印它们,这使得整个事情毫无意义。如何在运行时打印内联点?

1 个答案:

答案 0 :(得分:3)

  
    

如何在运行时打印内联点?

  

尝试刷新输出,如下所示:

for _ in range(10):
    print '.',
    sys.stdout.flush()
    time.sleep(.2)  # or other time-consuming work