【发布时间】:2019-09-28 06:12:08
【问题描述】:
我正在尝试打印每次迭代的报告。由于每次迭代都需要很长时间才能运行,因此,我使用print 和end="\r" 来显示当前正在处理的项目。
这是虚拟代码:
import time
y = list(range(50))
print("epoch\ttrain loss\ttest loss\ttrain avg\ttest avg\ttime\tutime")
for e in range(10):
for i in range(50):
print("training {}/{} batches".format(i,50), end = '\r')
time.sleep(0.05)
print('{}\t{:2f}\t{:2f}\t{:2f}\t{:2f}\t{:2.1f}\t{:2.1f}'.format(y[0]+e,y[1]+e,y[2]+e,y[3]+e,y[4]+e,y[5]+e,y[6]+e))
预期结果
这是我的预期结果,每次迭代后进度信息都会被完全删除。 (我在 Jupyter notebook 中运行,看起来不错)
我得到的结果
但是,当我在linux终端上运行它时,进度信息并没有完全擦除,结果是覆盖在进度之上。
为什么会这样?如何解决?
【问题讨论】:
-
我想如果你想手动清除它,你可以
print('\r' + ' '*100 + '\r' + '{}\t{:2f} ... '.format(...)) -
哪里说
\r删除了任何东西?
标签: python-3.x terminal io jupyter-notebook