Requests è davvero una bella libreria. Vorrei usarlo per scaricare file di grandi dimensioni (> 1 GB). Il problema è che non è possibile mantenere l'intero file in memoria. Ho bisogno di leggerlo a pezzi. E questo è un problema con il seguente codice
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
Per qualche motivo non funziona in questo modo. Carica ancora la risposta in memoria prima di salvarla in un file.
AGGIORNARE
Se hai bisogno di un piccolo client (Python 2.x /3.x) in grado di scaricare file di grandi dimensioni da FTP, puoi trovarlo qui . Supporta il multithreading e le riconnessioni (monitora le connessioni) e ottimizza i parametri socket per l'attività di download.