Python製作進度條
1號進度條
import datetime
import time
class Tiao(object):
def __init__(self):
self.obj1=datetime.timedelta(seconds=1)
self.var='%H:%M:%S'
def add(self,var):
a=datetime.datetime.strptime(var,self.var)
b=a+self.obj1
return str(b.strftime(self.var))
def str_time(self,var3):
a,b,c=[int(i) for i in var3.split(":")]
a*=3600
b*=60
return a+b+c
def yuan(self,var1,var2):
"""
計算百分比
var1:現在的時間
var2:總時間
"""
var1=self.str_time(var1)
var2=self.str_time(var2)
return '{:.2f}'.format(var1/var2)
def show(var):
a=Tiao()
b="00:00:00"
while True:
if var ==b:
break;
b=a.add(b)
print("{0}/{1} ({2}%)".format(b,var,a.yuan(b,var)))
time.sleep(0.5)
init="00:00:37"
show(init)
2號進度條
import time
class Index(object):
def __init__(self,number=50,decimal=2):
"""
param decimal:保留的小數點
param number : # 號的個數
"""
self.decimal=decimal
self.number=number
self.a=100/number
def __call__(self,now,total):
"""
"""
percentage=self.percentage_number(now,total)
well_num=int(percentage/self.a)
prograss_bar_num=self.prograss_bar(well_num)
return "\r%s %s"%(prograss_bar_num,percentage)
def percentage_number(self,now,total):
"""
計算百分比
param now:現在的數
param total:總數
"""
return round(now/total*100,self.decimal)
def prograss_bar(self,num):
"""
顯示進度條的位置
"""
well_num="#"*num
space_num=" "*(self.number-num)
return '[%s%s]'%(well_num,space_num)
index=Index()
start=37
for i in range(start+1):
print(index(i,start)+"%",end='')
time.sleep(0.3)
3號進度條
import time,sys
for i in range(50):
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.1)
參考地址