python request下载文件时,显示进度以及网速

 

import requests
import time

def downloadFile(name, url):
    headers = {'Proxy-Connection':'keep-alive'}
    r = requests.get(url, stream=True, headers=headers)
    length = float(r.headers['content-length'])
    f = open(name, 'wb')
    count = 0
    count_tmp = 0
    time1 = time.time()
    for chunk in r.iter_content(chunk_size = 512):
        if chunk:
            f.write(chunk)
            count += len(chunk)
            if time.time() - time1 > 2:
                p = count / length * 100
                speed = (count - count_tmp) / 1024 / 1024 / 2
                count_tmp = count
                print(name + ': ' + formatFloat(p) + '%' + ' Speed: ' + formatFloat(speed) + 'M/S')
                time1 = time.time()
    f.close()
    
def formatFloat(num):
    return '{:.2f}'.format(num)
    
if __name__ == '__main__':
    downloadFile('360.exe', 'http://down.360safe.com/setup.exe')

输出

bogon:Desktop macname$ python3 test.py
360.exe: 4.82% Speed: 1.98M/S
360.exe: 9.36% Speed: 1.86M/S
360.exe: 13.79% Speed: 1.81M/S
360.exe: 18.15% Speed: 1.79M/S
360.exe: 24.17% Speed: 2.47M/S
360.exe: 29.52% Speed: 2.19M/S
360.exe: 35.41% Speed: 2.41M/S
360.exe: 41.31% Speed: 2.42M/S
360.exe: 46.90% Speed: 2.29M/S
360.exe: 52.36% Speed: 2.24M/S
360.exe: 58.64% Speed: 2.57M/S
360.exe: 64.07% Speed: 2.23M/S
360.exe: 69.33% Speed: 2.16M/S
360.exe: 73.85% Speed: 1.85M/S
360.exe: 79.36% Speed: 2.26M/S
360.exe: 85.48% Speed: 2.51M/S
360.exe: 92.27% Speed: 2.78M/S
360.exe: 97.85% Speed: 2.28M/S

 

 

 

 

转载于:https://www.cnblogs.com/sea-stream/p/11082356.html

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值