[英]How do I download a file using urllib.request in Python 3?
所以,我在Python 3中urllib.request
用urllib.request
,我想知道如何将获取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)
但我得到了这个错误:
TypeError: 'HTTPResponse' does not support the buffer interface
我究竟做错了什么?
注意:我已经看到了这个问题 ,但它与Python 2的urllib2
有关,它在Python 3中进行了大修。
更改
f.write(g)
至
f.write(g.read())
我认为更简单的方法(也可以在两行中完成)是使用:
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()
来读取它。
这就像读取普通文件(语法除外)一样,可以用非常类似的方式处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.