Запити - це справді приємна бібліотека. Я хотів би використовувати його для завантаження великих файлів (> 1 ГБ). Проблема в тому, що неможливо зберегти весь файл у пам’яті. Мені потрібно його читати шматками. І це проблема із наступним кодом
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
Чомусь це не працює так. Він як і раніше завантажує відповідь у пам'ять, перш ніж зберегти його у файл.
ОНОВЛЕННЯ
Якщо вам потрібен невеликий клієнт (Python 2.x /3.x), який може завантажувати великі файли з FTP, ви можете знайти його тут . Він підтримує багатопотокові та повторно підключаються (робить моніторні з'єднання), а також налаштовує параметри сокета для завдання завантаження.