命令提示符中的“等待”动画 (Python)

新手上路,请多包涵

我有一个需要很长时间才能运行的 Python 脚本。我非常希望命令行输出有一点“等待”动画,就像我们在浏览器中为 AJAX 请求获得的漩涡状圆圈一样。类似于 ‘\’ 的输出,然后将其替换为 ‘|‘,然后是 ‘/‘,然后是 ‘-‘、’|’ 等,就像文本在循环中一样。我不确定如何用 Python 替换以前打印的文本。

原文由 Sarah 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 916
2 个回答

使用 \r 和 print-without-newline(即后缀带逗号):

 animation = "|/-\\"
idx = 0
while thing_not_complete():
    print(animation[idx % len(animation)], end="\r")
    idx += 1
    time.sleep(0.1)

对于 Python 2,使用这个 print 语法:

 print animation[idx % len(animation)] + "\r",

原文由 AKX 发布,翻译遵循 CC BY-SA 4.0 许可协议

只是另一个漂亮的变体

import time

bar = [
    " [=     ]",
    " [ =    ]",
    " [  =   ]",
    " [   =  ]",
    " [    = ]",
    " [     =]",
    " [    = ]",
    " [   =  ]",
    " [  =   ]",
    " [ =    ]",
]
i = 0

while True:
    print(bar[i % len(bar)], end="\r")
    time.sleep(.2)
    i += 1

原文由 LPby 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题