天天看點

用python實作動态進度條(兩種形式)

#動态進度條
#第一種
import time
scale = 50   #50表示進度條的長度
print("開始".center(scale //2, "-"))
#居中對齊center
#左對齊為ljust
#右對齊為rjust
#預設左對齊format

start = time.perf_counter()#起始時間
for i in range(scale+1):
  z = '>'* i
  b = '-' * (scale-i)
  h = (i/scale)*100
  dur = time.perf_counter() - start
  print("\r{:^3.0f}%[{}->{}{:.4f}s]".format(h, z, b, dur), end=' ')
  #{:^3.0f}%[{}->{}],表示10%->..........
  #{:.4f}s 表示0.0001s,即進度條的秒數精确到小數點後四位。
  #end=' ' 控制end為空的,使其不用換行。
  time.sleep(0.1)   #速度
print('\n'+"結束執行".center(scale//2, '-'))
           

第一種代碼執行如下:

此動态進度條是連續不換行的。

用python實作動态進度條(兩種形式)
#動态進度條
#第二種
import time
scale = 50
print("開始".center(scale //2, "-"))#左對齊
start = time.perf_counter()#擷取起始時間
for i in range(scale+1):
  z = '*'* i
  b = '-' * (scale-i)
  h = (i/scale)*20
  dur = time.perf_counter() - start
  print("\r{:^3.0f}%[{}->{}{:.2f}s]".format(h, z, b, dur))
  time.sleep(1)
print('\n'+"結束執行".center(scale//2, '-'))
           

第二種代碼執行如下:

此動态進度條是換行執行的。

用python實作動态進度條(兩種形式)