Pobierz duży plik w Pythonie z żądaniami
Upraszanie to naprawdę ładna biblioteka. Chciałbym go użyć do pobierania dużych plików (> 1 GB). Problem polega na tym, że nie można przechowywać całego pliku w pamięci. Muszę go przeczytać w kawałkach. I to jest problem z następującym kodem
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
Z jakiegoś powodu nie działa w ten sposób. Nadal ładuje odpowiedź do pamięci przed zapisaniem jej w pliku.
AKTUALIZACJA
Jeśli potrzebujesz małego klienta (Python 2.x / 3.x), który może pobierać duże pliki z FTP, możesz go znaleźćtutaj. Obsługuje wielowątkowość i ponowne połączenia (wykonuje połączenia monitorujące), a także dostosowuje parametry gniazda do zadania pobierania.