我正试图使用end=r
和print()
打印进度条,但Jupyter笔记本的输出仍然有新行。
for i in range(0, 100000):
print(i, end='r')
输出:
2478
4867
6957
8970
11405
...
我在Ubuntu 18.04上运行服务器,并在Mac上使用Chrome访问它。我怎样才能让车厢返回工作?
您的代码没有任何问题。在普通的Ubuntu18/Python3中运行,它的行为正如预期的那样。
我猜这是某种缓冲问题(或者Jupyter中的一个bug(。
根据@unsubu发布的链接,Jupyter似乎只需要一个小的时间延迟就可以让它的船恢复正常。
import time
for i in range(100000):
print(i, end='r')
time.sleep(0) # EDIT, somehow even this works too.
print("")
显然,如果你真的有大量的输出(比如10万条线路(,这还远远不够理想。但真正的延迟是屏幕的刷新和重新绘制,而不是实际的time.sleep()
。
如果你在快速重复循环中做这类事情,最好每隔几秒钟(大约(只更新一次进度条。这可以通过检查时间增量来实现。