Python3的大文件分片下载(asyncio协程版)

本篇博客介绍了一个使用Python3实现的大文件分片下载程序。该程序通过异步IO技术,能够将大文件分割成多个片段进行并发下载,并在下载完成后合并成完整文件。代码中详细展示了如何利用aiohttp进行网络请求,以及如何管理和合并临时文件。

Python3的大文件分片下载

源代码

import asyncio
import aiohttp
from tqdm import tqdm
import os

class bigfile_download:
    def __init__(self, session, url, tmp_path='./down_cache', proxy=None, file_fragment_size = 1024 * 1024 * 2):
        self.url = url
        self.session   = session
        self.proxy     = proxy
        self.filename  = url.split('/')[-1]        
        self.mtd_list  = []
        self.tmp_path  = tmp_path
        self.file_fragment_size = file_fragment_size
        
        self.__mkdir(tmp_path)

    def __mkdir(self, path):
        isExists=os.path.exists(path)
        if not isExists:
            os.makedirs(path) 
            print(path+' 创建成功')
            return True
        else:
            print(path + ' 目录已存在')
            return False

    async def fetch(self, url, method='get', headers = None, retryCount = 3):
        r = None
        curr_url = url
        for i in range(1, retryCount):
            if method == 'head':
                r = await self.session.head(curr_url, proxy=self.proxy, headers = headers)
            else:
                r = await self.session
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值