Pythonでファイルをダウンロードする際、最も記述がシンプルなのはurlretrieve
です。しかし、urlretrieve
はダウンロード開始時にファイルが生成されるため、ダウンロードが失敗・中断した場合不完全なファイルが残ってしまいます。
# urlretrieveの使用例
import urllib
urllib.request.urlretrieve(download_url, save_dir)
そのため、同じことをするならurlopen
が推奨されています。urlopen
はダウンロード完了後にファイルを作成します。ダウンロードが何らかの理由で失敗・中断された場合は不完全なファイルが出来上がります(壊れたファイルになり全く読めません)。
# urlopenの使用例
import urllib
data = urllib.request.urlopen(download_url).read()
with open(save_dir, mode="wb") as f:
f.write(data)
以上の理由から、urlretrieve
を使うのはやめて、urlopen
を使うことをおすすめします。