【发布时间】:2020-07-28 03:10:49
【问题描述】:
通常print ("{}".foo, end="\r") 效果很好。
但例外情况是foo 很长,而下次foo 变短。输出不正确。下面是一个例子:
import time
print ("{}".format(1111), end="\r")
time.sleep(2)
print ("{}".format(2), end="\r")
第一个输出:
1111
最终输出(2 秒后)- 错误:
2111
预期输出
2
尝试
尝试将flush=True 与print 和sys.stdout.flush() 一起使用,但没有成功。
在 Jupyter Notebook 和 iPython 中测试。 知道如何以简单的方式优化它吗?
【问题讨论】:
-
好吧,我得到了想要的输出:
1111,然后在 2 秒后,2 -
2 秒后我只收到
2。1111没有出现。 -
我相信这种行为是依赖于平台的(甚至可能在同一平台上的不同终端之间有所不同)。一种通用的方法是用空格右填充较短的输出。
-
我在 Windows 上测试了这个。我从下面的答案中知道的是 - 输出适合 Mac。