相关疑难解决方法(0)

使用请求在python中下载大文件

请求是一个非常好的库.我想用它来下载大文件(> 1GB).问题是不可能将整个文件保存在内存中我需要以块的形式读取它.这是以下代码的问题

import requests

def DownloadFile(url)
    local_filename = url.split('/')[-1]
    r = requests.get(url)
    f = open(local_filename, 'wb')
    for chunk in r.iter_content(chunk_size=512 * 1024): 
        if chunk: # filter out keep-alive new chunks
            f.write(chunk)
    f.close()
    return 
Run Code Online (Sandbox Code Playgroud)

由于某种原因它不起作用.在将其保存到文件之前,它仍会将响应加载到内存中.

UPDATE

如果你需要一个可以从FTP下载大文件的小客户端(Python 2.x /3.x),你可以在这里找到它.它支持多线程和重新连接(它确实监视连接),它还为下载任务调整套接字参数.

python download stream python-requests

348
推荐指数
6
解决办法
27万
查看次数

使用urllib2将大型二进制文件流式传输到文件

我使用以下代码将大型文件从Internet流式传输到本地文件:

fp = open(file, 'wb')
req = urllib2.urlopen(url)
for line in req:
    fp.write(line)
fp.close()
Run Code Online (Sandbox Code Playgroud)

这有效,但下载速度很慢.有更快的方法吗?(文件很大,所以我不想把它们留在内存中.)

python streaming file urllib2

53
推荐指数
3
解决办法
5万
查看次数

标签 统计

python ×2

download ×1

file ×1

python-requests ×1

stream ×1

streaming ×1

urllib2 ×1