繁体   English   中英

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

[英]How do I download a file using urllib.request in Python 3?

所以,我在Python 3中urllib.requesturllib.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM