如何在Python 3中使用urllib.request下载文件?

Nat*_*055 9 python http urllib python-3.x

所以,我urllib.request在Python 3中搞乱了,我想知道如何将获取Internet文件的结果写入本地机器上的文件.我试过这个:

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

但我得到了这个错误:

TypeError: 'HTTPResponse' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

注意:我已经看到了这个问题,但它与Python 2中的Python 2 urllib2进行了大修.

Sim*_*mon 5

我认为更简单的方法(你也可以用两行来完成)是使用:

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

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

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