zoukankan      html  css  js  c++  java
  • 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("下载成功")
    
  • 相关阅读:
    c语言中程序的循环控制 大小值的判断及赋值
    python中猜数字小游戏
    R语言中自编函数(例题)
    c语言中continue语句
    c语言中程序的循环控制 变量的非常规变化例题
    python中向列表中添加元素
    mean
    python中原始字符串和长字符串
    ArcInfo 的工作空间和 Coverage
    ArcGIS资料大全
  • 原文地址:https://www.cnblogs.com/zhenzi0322/p/14343400.html
Copyright © 2011-2022 走看看