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を使うことをおすすめします。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です