如何在Python中制作更新的命令行状态栏
我不知道正确的术语,所以有点难以搜索如何实现这个。
命令行程序通常只是打印一些文本行。不过,有时候这些文本会被更新。比如说,git pull
或者 wget
就是很好的例子。
举个例子:
[> ] 25%
[-> ] 50%
[--> ] 75%
[--->] 100%
但是这些文本会在同一行上不断变化。
我怎么能在Python中做到这一点呢?其实不需要太复杂,我只是想做一些状态条...
(我希望这个能在Ubuntu上运行,但如果能跨平台就更好了。)
4 个回答
0
打印“进度文本\r”,
注意后面的逗号,它可以防止自动换行。
3
这里的关键在于 \r
这个字符,它叫做回车符,意思是把光标移动到当前行的开头。
from __future__ import print_function
import time
for i in xrange(1, 100):
print('[{0:10}]'.format('-' * (i / 10)), end = '\r')
time.sleep(0.1)
另外,还有一些更高级的方法可以控制控制台的输出,比如在Windows上使用Console API,或者使用ANSI转义码。这些方法可以让你自由移动光标,还能改变文字的属性,比如颜色。
1
那你觉得 progressbar 这个包怎么样呢?