【发布时间】:2021-08-12 12:19:49
【问题描述】:
我正在尝试打印我的程序所取得的进展,但出现了一个奇怪的错误。如果 for 循环需要很长时间才能完成,end = "\r" 似乎无法正常工作。
例如:
for i in range(6):
print(f"Done {int(np.ceil(count*0.8))}% !", end = "\r")
count += 1
打印Done 5% !
然而
for i in range(6):
print(f"Done {int(np.ceil(count*0.8))}% !", end = "\r")
count += 1
time.sleep(2)
打印Done 1% !Done 2% !Done 3% !Done 4% !Done 4% !Done 5% !
在我的代码中,for 循环转了 70 秒,所以我认为没有正确打印进度更新的原因是因为它花费的时间太长? 我不确定这个问题的原因,这可能是什么原因造成的?
【问题讨论】:
-
您在哪个应用程序中运行此代码?终端,IDE...?
-
可能是当打印在短时间内发生时,它们被缓冲在一起,最终结果被打印出来;但是您运行代码的应用程序不支持回车,因此如果单独打印它们不会被覆盖。
-
这不是在回答您的帖子,但可能会有所帮助。 tqdm 是一个 python 库,它完全可以完成您需要做的事情,即显示循环的进度。你可能想检查一下。
标签: python python-3.x loops for-loop printing