• Python之使用requests处理超大文件


    在我们开发过程中可能会遇到在下载文件的时候需要下载超大的文件。那这时候怎么办才好呢
    直接全部下载的话, 文件过大, 可能会造成内存不足等问题。

    如果你的requests模块没有安装的话就使用pip install requests安装一下。

    常规下载

    import requests
    
    url = 'http://xxx.com/xxx.zip'
    response = requests.get(url)
    if response.status_code == 200:
        with open('./xx.zip', 'wb') as fp:
            fp.write(response.content)
        print("下载成功")
    

    这种方式下载在下载小文件的时候会很快,但是在下载大点的文件的时候就会变得慢了。

    下载超大文件解决方式

    使用requestsstream模式。

    第一种方式

    把文件分成一块一块的遍历要下载的内容。

    import requests
    
    url = 'http://xxx.com/xxx.zip'
    response = requests.get(url=url, stream=True)
    if response.status_code == 200:
        chunk_size = 1024*4
        with open('xxx.zip', 'wb') as f:
            for chunk in response.iter_content(chunk_size=chunk_size):
                if chunk:
                    f.write(chunk)
        print("下载成功")
    

    第二种方式

    把文件分成一行一行的遍历要下载的内容。

    import requests
    
    url = 'http://xxx.com/xxx.zip'
    chunk_size = 1024 * 4
    with requests.get(url, stream=True) as req:
        with open('xx.zip', 'wb') as f:
            for chunk in req.iter_content(chunk_size=chunk_size):
                if chunk:
                    f.write(chunk)
    print("下载成功")
    
  • 相关阅读:
    UVa Live 3942 Remember the Word
    UVa 11019 Matrix Matcher
    bzoj 4445 小凸想跑步
    Codeforces 832E Vasya and Shifts
    二值法方法综述及matlab程序
    排序算法(1)-插入,选择,冒泡
    如果我想了解一个陌生人
    Libsvm在matlab环境下使用指南
    科学预测世界杯-采用机器学习方法
    应用笔画宽度变换(SWT)来检测自然场景中的文本
  • 原文地址:https://www.cnblogs.com/zhenzi0322/p/14343400.html
Copyright © 2020-2023  润新知