Python sys.stdout.flush() 似乎不起作用

Python sys.stdout.flush() doesn't seem to work

我想通过重复覆盖 print 函数来查看我的 for 循环的进度。我希望每次循环进行时打印的行都会被覆盖。发生的事情是,在每个循环之后,都会在前一个打印行的正下方打印一个新行。这是通过从打印行中删除 \n 解决的,因为 \n 导致每次都覆盖一个新的空行,而不是覆盖第一个打印行。

import sys
import time

count1=0
x=10
for i in range(x):
    count1+=1
    sys.stdout.write("\r{} out of {}...\n".format(count1, x))
    sys.stdout.flush()
    time.sleep(.1)

我在 Jupter Notebook 4.3.1 中使用 Python 3.6(64 位)。在 Windows 10.

我查看了 Stack Overflow 上发布的几个问题,但我还没能解决它。

谢谢!

删除创建新行的“\n”。

sys.stdout.write("\r{} out of {}...".format(count1, x))