Jupyter 笔记本中 for 循环的刷新输出

Flush output in for loop in Jupyter notebook

我想在 Jupyter notebook 上的迭代中打印出 i 并将其冲出。下一次迭代后,我将打印下一个 i。我尝试了这个 question and this question 的解决方案,但是,它只是打印出 0123...9 而没有为我刷新输出。这是我的工作代码:

import sys
import time

for i in range(10):
    sys.stdout.write(str(i)) # or print(i, flush=True) ?
    time.sleep(0.5)
    sys.stdout.flush()

这些是我的设置:ipython 5.1,python 3.6。也许,我在之前的解决方案中遗漏了什么?

#Try this:
import sys
import time

for i in range (10):  
    sys.stdout.write('\r'+str(i))
    time.sleep(0.5)

'\r' 会打印在行首

第一个答案是正确的,但您不需要 sys 包。您可以使用 print 函数的 end 参数。它指定最后打印什么,它的默认值是\n(newline) (docs1, docs2)。 改用\r(回车return)。

import time

for i in range (10):  
    print(i, end="\r")
    time.sleep(0.5) # This line is to see if it's working or not

试试这个

for i in range (10):  
    print("\r", end=str(i))