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('\r%s %s%%' %(show_str,int(percent*100)),end='',file=sys.stdout,flush=True)
12     #\r 代表调到行首的意思,\n为换行的意思,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%

 

posted @ 2017-11-11 21:42  wangmo  阅读(1835)  评论(0编辑  收藏  举报