使用 sys.stdout 或 sys.stderr 就可以输出一个简单的进度条:
import time
import sys
def report_progress(progress, total, lbar_prefix = '', rbar_prefix=''):
percent = round(progress / float(total) * 100)
buf = "%s|%s| %s%d/%d %s"%(lbar_prefix, ('#' * percent).ljust(100, '-'),
rbar_prefix, progress, float(total), "%d%%"%(percent))
sys.stdout.write(buf)
sys.stdout.write('\r')
sys.stdout.flush()
def report_progress_done():
sys.stdout.write('\n')
total = 100
report_progress(0, total)
for progress in range(1, 101):
time.sleep(0.1)
report_progress(progress, total)
report_progress_done()