我正在用 python 开发一个小型命令行游戏,我在其中使用 tqdm 模块显示进度条。我使用 msvcrt 模块监听用户输入以中断进程。一旦中断,用户可以通过在命令行提示符中输入“重新启动”来重新启动。第二次显示进度条时,它不会根据进度更新同一行,而是每次都创建一个新行。
我怎样才能让它在同一条线上显示进度?
此代码片段说明了我对进度条的使用。
def transfer():
for i in tqdm.tqdm(range(1000), desc="Transfer progress", ncols=100, bar_format='{l_bar}{bar}|'):
sleep(.1)
if msvcrt.kbhit():
if msvcrt.getwche() == ' ':
interrupt()
break
def interrupt():
type("File transfer interrupted, to restart the transfer, type 'restart'")
原文由 Pieter Helsen 发布,翻译遵循 CC BY-SA 4.0 许可协议
试试
position=0
和leave=True
(解决方案在 Google Colab 中运行以避免打印到换行符)