リクエストは本当に素晴らしいライブラリです。大きなファイル(> 1GB)のダウンロードに使用したい。問題は、ファイル全体をメモリに保持できないため、チャンクで読み取る必要があることです。そして、これは次のコードの問題です
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
何らかの理由で、この方法では機能しません。それでもファイルに保存する前に応答をメモリにロードします。
更新
FTPから大きなファイルをダウンロードできる小さなクライアント(Python 2.x /3.x)が必要な場合は、こちらで見つけることができます。マルチスレッドと再接続をサポートし(接続を監視します)、ダウンロードタスクのソケットパラメータも調整します。