【发布时间】:2015-02-04 23:55:38
【问题描述】:
在 python 2.7.3 中,我尝试创建一个脚本来通过 Internet 下载文件。我使用 urllib2 模块。
在这里,我做了什么:
import urllib2
HTTP_client = urllib2.build_opener()
#### Here I can modify HTTP_client headers
URL = 'http://www.google.com'
data = HTTP_client.open(URL)
with open ('file.txt','wb') as f:
f.write(data.read())
好的。效果很好。
问题是当我想保存大文件(数百 MB)时。我认为当我调用“打开”方法时,它会将文件下载到内存中。但是,大文件呢?它不会在内存中保存 1 GB 的数据!如果我失去连接会发生什么,所有下载的部分都丢失了。
如何像 wget 一样在 Python 中下载大文件?在 wget 中,它“直接”将文件下载到硬盘中。我们可以看到文件变大了。
我很惊讶没有方法“检索”来做类似的事情
HTTP_client.retrieve(URL, 'filetosave.ext')
【问题讨论】:
标签: python-2.7 urllib2