我如何在Python 3中使用urllib.request下载文件?
我如何在Python 3中使用urllib.request下载文件?
因此,我正在使用Python 3中的urllib.request
进行测试,并想知道如何将获取的互联网文件的结果写入本地计算机上的文件。我尝试了这个:
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中进行了彻底的改进。
admin 更改状态以发布 2023年5月21日
我认为更容易的方法(也可以用两行代码完成)是使用:
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()
来读取它。
它就像读取普通文件一样(除了语法),可以用非常类似的方法处理。