ga('set', 'anonymizeIp', 1);
在執行python程式時常是要等待一段運算時間,這個時候讓自己或使用者能清楚知道目前執行到哪裡是很好的UX設計。
本文示範如何讓python程式執行顯示當前執行進度百分比。
需要引用的函式庫有以下幾個
import sys
import time
import threading
import os
from random import random
from math import sqrt
###### Progress Counter ###################################
def setInterval(interval, times = -1):
def outer_wrap():
# This will be the to be
# called
def wrap(*args, **kwargs):
stop = threading.Event()
def inner_wrap():
i = 0
while i != times and not stop.isSet():
stop.wait(interval)
(*args, **kwargs)
i += 1
t = threading.Timer(0, inner_wrap)
t.daemon = True
t.start()
return stop
return wrap
return outer_wrap
############################################################
cnt = 0
Points = 5000000
@setInterval(0.4) #設定幾秒計算顯示一次百分比
def progress():
sys.stdout.write('\r%s%%'%int((i/Points)*100))
sys.stdout.flush() #清除前一筆百分比數值
stopper = progress()
for i in range(Points):
x, y = random(), random()
dis = sqrt(x**2 + y**2)
time.sleep(0.1)
stopper.set()
這邊使用5000000個點做迴圈中的直線距離計算,
在MBP上大約需3~4秒。