不覆盖显示进度条
import sys
import time
def inf_progress(iteration, total, prefix='', suffix='', decimals=1, barLength=100):
formatStr = "{0:." + str(decimals) + "f}"
percent = formatStr.format(100 * (iteration / float(total))) #5.0 10.0
filledLength = round(barLength * iteration / float(total)) #则四舍五入到最接近的整数
bar = '#' * filledLength + '-' * (barLength - filledLength)
sys.stdout.write('\r%s |%s| %s%s %s' % (prefix, bar, percent, '%', suffix))
if iteration == total:
sys.stdout.write('\n')
sys.stdout.flush() #实时输出
# time.sleep(1)
print()
TEST_NUM=30
for i in range(1, TEST_NUM + 1):
inf_progress(i, TEST_NUM, 'Progress', 'Complete', 1, 50)
Progress |##------------------------------------------------| 3.3% Complete
Progress |###-----------------------------------------------| 6.7% Complete
Progress |#####---------------------------------------------| 10.0% Complete
Progress |#######-------------------------------------------| 13.3% Complete
Progress |########------------------------------------------| 16.7% Complete
Progress |##########----------------------------------------| 20.0% Complete
Progress |############--------------------------------------| 23.3% Complete
Progress |#############-------------------------------------| 26.7% Complete
Progress |###############-----------------------------------| 30.0% Complete
Progress |#################---------------------------------| 33.3% Complete
Progress |##################--------------------------------| 36.7% Complete
Progress |####################------------------------------| 40.0% Complete
Progress |######################----------------------------| 43.3% Complete
Progress |#######################---------------------------| 46.7% Complete
Progress |#########################-------------------------| 50.0% Complete
Progress |###########################-----------------------| 53.3% Complete
Progress |############################----------------------| 56.7% Complete
Progress |##############################--------------------| 60.0% Complete
Progress |################################------------------| 63.3% Complete
Progress |#################################-----------------| 66.7% Complete
Progress |###################################---------------| 70.0% Complete
Progress |#####################################-------------| 73.3% Complete
Progress |######################################------------| 76.7% Complete
Progress |########################################----------| 80.0% Complete
Progress |##########################################--------| 83.3% Complete
Progress |###########################################-------| 86.7% Complete
Progress |#############################################-----| 90.0% Complete
Progress |###############################################---| 93.3% Complete
Progress |################################################--| 96.7% Complete
Progress |##################################################| 100.0% Complete
覆盖显示进度条(动态刷新)
将上述程序作如下更改:
time.sleep(1)
# print()
在同一行不断刷新
Progress |##################################################| 100.0% Complete