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

15 浏览
0 Comments

我如何在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日
0
0 Comments

我认为更容易的方法(也可以用两行代码完成)是使用:

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() 来读取它。

它就像读取普通文件一样(除了语法),可以用非常类似的方法处理。

0
0 Comments

修改

f.write(g)

f.write(g.read())

0