使用什么命令而不是urllib.request.urlretrieve?

Mar*_*cus 21 python urllib python-3.x python-requests

我目前正在编写一个从URL下载文件的脚本

import urllib.request
urllib.request.urlretrieve(my_url, 'my_filename')
Run Code Online (Sandbox Code Playgroud)

根据文档,urllib.request.urlretrieve是一个遗留的接口,可能会被弃用,因此我想避免它,所以我不必在不久的将来重写此代码.

我无法找到download(url, filename)标准库中的其他界面.如果urlretrieve被认为是Python 3中的遗留接口,那么替代品是什么?

Jon*_*ric 22

不推荐是一回事,未来某些时候可能会被弃用是另一回事.

如果它符合您的需求,我会继续使用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)
Run Code Online (Sandbox Code Playgroud)


Oct*_*ipi 17

请求对此非常好.虽然安装它但有几个依赖项.这是一个例子.

import requests
r = requests.get('imgurl')
with open('pic.jpg','wb') as f:
  f.write(r.content)
Run Code Online (Sandbox Code Playgroud)

  • 但这不是将响应存储在内存中吗?是否有 urlretrieve 的请求替代方案流式传输到磁盘? (3认同)