В python 2.7.3 я пытаюсь создать скрипт для загрузки файла через Интернет. Я использую модуль urllib2.Загрузка больших файлов в Python
Вот, что я сделал:
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())
OK. Это прекрасно работает.
Проблема в том, когда я хочу сохранить большие файлы (сотни МБ). Я думаю, что когда я вызываю метод «open», он загружает файл в память. Но как насчет больших файлов? Он не сохранит 1 ГБ данных в памяти! Что произойдет, если я потерял соединение, вся загруженная часть будет потеряна.
Как загрузить большие файлы в Python, например, wget? В wget он загружает файл «прямо» на жесткий диск. Мы можем видеть, что файл вырос в размерах.
Я удивлен, что нет никакого способа «получить» для этого таких вещей, как
HTTP_client.retrieve(URL, 'filetosave.ext')
Возможный дубликат [больших двоичных файлов Стрим с urllib2 в файл] (http://stackoverflow.com/questions/1517616/stream-large-binary-files-with-urllib2-to-file) –