Python獲取下載速度並顯示進度條
阿新 • • 發佈:2017-08-17
locks rom art 回調 filename bytes sleep format ==
#!/usr/bin/python3 # -*- coding:utf-8 -*- import sys import time from urllib import request ‘‘‘ urllib.urlretrieve 的回調函數: def callbackfunc(blocknum, blocksize, totalsize): @blocknum: 已經下載的數據塊 @blocksize: 數據塊的大小 @totalsize: 遠程文件的大小 ‘‘‘ def Schedule(blocknum, blocksize, totalsize): speed = (blocknum * blocksize) / (time.time() - start_time) # speed_str = " Speed: %.2f" % speed speed_str = " Speed: %s" % format_size(speed) recv_size = blocknum * blocksize # 設置下載進度條 f = sys.stdout pervent = recv_size / totalsize percent_str = "%.2f%%" % (pervent * 100) n = round(pervent * 50) s = (‘#‘ * n).ljust(50, ‘-‘) f.write(percent_str.ljust(8, ‘ ‘) + ‘[‘ + s + ‘]‘ + speed_str) f.flush() # time.sleep(0.1) f.write(‘\r‘) # 字節bytes轉化K\M\G def format_size(bytes): try: bytes = float(bytes) kb = bytes / 1024 except: print("傳入的字節格式不對") return "Error" if kb >= 1024: M = kb / 1024 if M >= 1024: G = M / 1024 return "%.3fG" % (G) else: return "%.3fM" % (M) else: return "%.3fK" % (kb) if __name__ == ‘__main__‘: # print(format_size(1222222222)) start_time = time.time() filename = ‘test.data‘ url = ‘http://ip:port/path/speed.test‘ request.urlretrieve(url, filename, Schedule)
Python獲取下載速度並顯示進度條