web-dev-qa-db-ja.com

urllib.request.urlretrieveの代わりに使用するコマンドは何ですか?

私は現在、URLからファイルをダウンロードするスクリプトを書いています

_import urllib.request
urllib.request.urlretrieve(my_url, 'my_filename')
_

ドキュメントによると、 _urllib.request.urlretrieve_ はレガシーインターフェイスであり、非推奨になる可能性があるため、近い将来このコードを書き直す必要がないように、これを避けたいと思います。

標準ライブラリでdownload(url, filename)のような別のインターフェイスを見つけることができません。 urlretrieveがPython 3のレガシーインターフェースと見なされる場合、置き換えは何ですか?

21
Marcus

非推奨は1つのことであり、将来のある時点で非推奨になる可能性がありますは別のことです。

それがあなたのニーズに合うなら、私はurlretrieveを使い続けます。

そうは言っても、それなしで行うことができます:

from urllib.request import urlopen
from shutil import copyfileobj

with urlopen(image['url']) as in_stream, open(p, 'wb') as out_file:
    copyfileobj(in_stream, out_file)
22
Jon-Eric

リクエストはこれには本当にいいです。それをインストールするためにいくつかの依存関係があります。これが例です。

import requests
r = requests.get('imgurl')
with open('pic.jpg','wb') as f:
  f.write(r.content)
19
Octipi