python 实现下载进度条_Python 进度条。可以用来做下载进度条。

该博客介绍了一个Python实现的进度条类`ProgressBar`,可用于显示下载等操作的进度。类中包含初始化、开始、更新、刷新和flush方法,通过控制台输出实时更新进度条,并显示已下载和总大小信息。
摘要由CSDN通过智能技术生成

progressbar.py

#!python2

#-*-encoding:utf8-*-

import os

import sys

import time

class ProgressBar:

def __init__(self, maxVal):

self._maxVal = maxVal

self._progress = 0

self._start_time = 0.0

def start(self):

print ""

self._start_time = time.time()

self.refresh()

def update(self, delta):

self._progress += delta

self.refresh()

def _getSizeString(self, len):

s = ""

if len >= 1024 * 1024:

s = "%.1fM" % (float(len) / (1024 * 1024))

elif len >= 1024:

s = "%.1fK" % (float(len) / (1024))

else:

s = "%dB" % (len)

return s

def refresh(self):

per = float(self._progress)/ self._maxVal

sys.stdout.write("%5.1f%%" % (per*100))

plen = 45

n1 = int(per * plen)

sys.stdout.write(" [" + "#" * n1 + "-" * (plen-n1) + ']')

sys.stdout.write(" %s/%s" % (self._getSizeString(self._progress), self._getSizeString(self._maxVal)))

sys.stdout.write(" %s/S " % ( self._getSizeString(self._progress/(time.time() - self._start_time))))

sys.stdout.write("\r")

self.flush()

def flush(self):

sys.stdout.flush()

def main():

maxV = 100*1024*1000

pbar = ProgressBar(maxV)

pbar.start()

n = 0

while n < maxV:

sz = 2654100

if (maxV - n) < sz:

sz = maxV - n

pbar.update(sz)

n += sz

time.sleep(1)

if __name__ == '__main__':

main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值