Python3下载文件动态显示进度条和下载时间的实现

13 篇文章 0 订阅
11 篇文章 0 订阅
import os
import time
import requests


def downloader(url,path,title):
    if not os.path.exists(path):
        os.makedirs(path)
    file_path = path + "/" + title
    start = time.time()
    size = 0
    res = requests.get(url, stream=True)
    chunk_size = 1024  # 每次下载数据大小
    content_size = int(res.headers["content-length"])  # 总大小
    try:
        if res.status_code == 200:
            print('[%s 文件大小]: %0.2f MB' % (title, content_size / chunk_size / 1024))
            with open(file_path, 'wb') as f:
                for data in res.iter_content(chunk_size=chunk_size):
                    f.write(data)
                    size += len(data)  # 已下载文件大小
                    # \r 指定第一个字符开始,搭配end属性完成覆盖进度条
                    print(
                        '\r' + '[下载进度]: %s%.2f%%' % ('>' * int(size * 50 / content_size), float(size / content_size * 100)),
                        end='')
            end = time.time()
            print('\n' + "全部下载完成!用时%s.2f秒" % (end - start))
    except Exception as e:
        print("下载出错:",e)


def main():
    url = "http://xxxxxxx.html"
    path  = os.getcwd() + '/文件夹名字'
    title = "文件名字.png" # 可通过循环获取名字或者修改名字
    downloader(url,path,title)

if __name__ == '__main__':
    main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值