Requests ist eine wirklich tolle Bibliothek. Ich würde gerne verwenden, um große Dateien (>1GB) herunterzuladen. Das Problem ist, dass es nicht möglich ist, die gesamte Datei im Speicher zu behalten; ich muss sie in Abschnitten lesen. Und das ist ein Problem mit dem folgenden Code:
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
Aus irgendeinem Grund funktioniert es auf diese Weise nicht; es lädt die Antwort immer noch in den Speicher, bevor sie in eine Datei gespeichert wird.