如何下载在Python 3使用urllib.request里一个文件?(How do I downl

2019-08-20 00:08发布

所以,我有瞎搞urllib.request在Python 3,我想知道如何编写得到一个互联网文件到文件在本地计算机上的结果。 我尝试这样做:

g = urllib.request.urlopen('http://media-mcw.cursecdn.com/3/3f/Beta.png')
with open('test.png', 'b+w') as f:
    f.write(g)

但我得到这个错误:

TypeError: 'HTTPResponse' does not support the buffer interface

我究竟做错了什么?

注:我已经看到了这个问题 ,但它涉及到Python 2的urllib2这是在Python 3大修。

Answer 1:

更改

f.write(g)

f.write(g.read())


Answer 2:

一个简单的方法我觉得(你也可以做到这一点在两行)是使用:

import urllib.request
urllib.request.urlretrieve('http://media-mcw.cursecdn.com/3/3f/Beta.png', 'test.png')

至于方法,你都习惯了。 当您使用g = urllib.request.urlopen('http://media-mcw.cursecdn.com/3/3f/Beta.png')你是刚刚获取的文件。 您必须使用g.read() g.readlines()g.readline()读取它了。

这就像读一个普通的文件(除了语法),并且可以在一个非常相似的方式进行处理。



文章来源: How do I download a file using urllib.request in Python 3?