实现如下状态栏:
[========== ] 45%
[================ ] 60%
[==========================] 100%
我希望将其打印到标准输出,并不断刷新它,而不是打印到另一行。这该怎么做?
原文由 Stan 发布,翻译遵循 CC BY-SA 4.0 许可协议
实现如下状态栏:
[========== ] 45%
[================ ] 60%
[==========================] 100%
我希望将其打印到标准输出,并不断刷新它,而不是打印到另一行。这该怎么做?
原文由 Stan 发布,翻译遵循 CC BY-SA 4.0 许可协议
'\r'
字符(回车)将光标重置到该行的开头,并允许您覆盖该行之前的内容。
from time import sleep
import sys
for i in range(21):
sys.stdout.write('\r')
# the exact output you're looking for:
sys.stdout.write("[%-20s] %d%%" % ('='*i, 5*i))
sys.stdout.flush()
sleep(0.25)
我不是 100% 确定这是否可以在所有系统上完全移植,但它至少适用于 Linux 和 OSX。
原文由 Mark Rushakoff 发布,翻译遵循 CC BY-SA 2.5 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答865 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
您可以从 PyPI 获得一个名为
progressbar
的 Python 模块,它实现了此类功能。如果您不介意添加依赖项,这是一个很好的解决方案。否则,请选择其他答案之一。如何使用它的一个简单示例:
要安装它,您可以使用
easy_install progressbar
或pip install progressbar
如果您喜欢 pip。