有些程序能够修改控制台输出,wget 很容易浮现在我们脑海中。
我该如何在纯 Python 中做到这一点?我知道 IPython 有清除输出()。我试过了,但还是不行。我更喜欢纯 Python。
from IPython.core.display import clear_output
from time import sleep
for i in range(100):
clear_output()
print '[', '='*i, ' '*(100-i), ']'
sleep(0.1)
答案1
虽然合适的库是最好的解决方案,但我想展示一个简单的替代方法:使用\r
(回车)而不是\n
(换行)作为行尾,这样光标就放在当前行的开头,而不是下一行。
#! /usr/bin/python3
from time import sleep
for i in range(100):
print('[' + '='*i + ' '*(100-i) + ']', end='\r')
sleep(0.1)
答案2
Helio 提示的解决方案非常有效!我pip install progressbar
首先需要这样做,但后来官方示例之一就成功了。
from progressbar import *
pbar = ProgressBar(widgets=[Percentage(), Bar()], maxval=300).start()
for i in range(300):
time.sleep(0.01)
pbar.update(i+1)
pbar.finish()