什么命令,而不是使用urllib.request.urlretrieve?(What command

2019-08-17 02:58发布

我目前正在写的是从URL下载文件的脚本

import urllib.request
urllib.request.urlretrieve(my_url, 'my_filename')

根据该文档, urllib.request.urlretrieve是一个旧式接口,并可能成为过时的,所以我想避免它,所以我没有在不久的将来重新编写这些代码。

我无法找到像另一个接口download(url, filename)在标准库。 如果urlretrieve被认为是一种传统的接口在Python 3,什么是替代?

Answer 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)


Answer 2:

请求是非常好的这一点。 有几个依赖关系,虽然安装它。 下面是一个例子。

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


Answer 3:

在不使用的另一种解决方案shutil并没有其他外部库类似requests

import urllib.request

image = {'url': 'https://cdn.sstatic.net/Sites/stackoverflow/img/appletouch-icon.png'}
p = 'image.png'

response = urllib.request.urlopen(image['url'])
image = response.read()

file = open(p, 'wb')

file.write(image)
file.close()


文章来源: What command to use instead of urllib.request.urlretrieve?