質問: 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 どういうわけかそれはこのようには動作しません。それはまだそれをファイルに保存する前にメモリに応答をロードします。 _ update _ ftpから大きなファイルをダウンロードできる小さなクライアント(python 2.x/3.x)が必要な場合は、それを見つけることができます ここ 。それはマルチスレッド&再接続をサポートしています(それは接続を監視します)またそれはダウンロードタスクのためのソケットパラメータを調整します。
回答: 厳密にはopが求めていたことではありませんが、... urllibを使用するのはばかげて簡単です。from urllib.request import urlretrieve url = 'http://mirror.pnl.gov/releases/16.04.2/ubuntu-16.04.2-desktop-amd64.iso' dst = 'ubuntu-16.04.2-desktop-amd64.iso' urlretrieve(url, dst) これを一時ファイルに保存したい場合は、次のようにします。from urllib.request import urlopen from shutil import copyfileobj from tempfile import namedtemporaryfile url = 'http://mirror.pnl.gov/releases/16.04.2/ubuntu-16.04.2-desktop-amd64.iso' with urlopen(url) as fsrc, namedtemporaryfile(delete=false) as fdst: copyfileobj(fsrc, fdst) 私はその過程を見ました:watch 'ps -p 18647 -o pid,ppid,pmem,rsz,vsz,comm,args; ls -al *.iso' ファイルが大きくなっていくのを見ましたが、メモリ使用量は17 mbのままでした。私は何かが足りないのですか?