python打印进度条

 1 import sys
 2 import time
 3 total_size=10212
 4 recv_size=0
 5 def progress(percent,width=50):
 6     if percent > 1: #如果百分比大于1的话则取1
 7         percent=1
 8     show_str=('[%%-%ds]' %width) %(int(percent*width)*'#')
 9     #一共50个#,%d 无符号整型数,-代表左对齐,不换行输出,两个% % 代表一个单纯的%,对应的是后面的s,后面为控制#号的个数
10     # print(show_str)  #[###############               ] show_str ,每次都输出一次
11     print('
%s %s%%' %(show_str,int(percent*100)),end='',file=sys.stdout,flush=True)
12     #
 代表调到行首的意思,
为换行的意思,fiel代表输出到哪,flush=True代表无延迟,立马刷新。第二个%s是百分比
13 while recv_size < total_size:   #当接收的大小小于总大小时
14     time.sleep(0.2) #1024
15     recv_size+=1024     #每次接收1024
16     percent=recv_size/total_size    #计算百分比 0.10027418723070897
17     progress(percent,width=30)  #调用进度条函数,将百分比传进去
1 结果:
2 [##############################] 100%
原文地址:https://www.cnblogs.com/wangmo/p/7820074.html