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))
我想在 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))