0

我正在尝试从网站获取图像,但我不知道我做错了什么。这是我的代码:

import httplib2

h = httplib2.Http('.cache')

response, content = h.request('http://1.bp.blogspot.com/-KSBzFF0bIyU/TtFyj-KgC0I/AAAAAAAABEo/o43IoY_9Bec/s1600/praia-de-ponta-verde-maceio.jpg')

print(response.status)

with open('maceio.jpg', 'wb') as f:
    print(content, file = f)

--------------------------------------------------------------------------------

 200
Traceback (most recent call last):
  File "/home/matheus/workspace/Get Link/new_method_v2.py", line 12, in <module>
    print(content, file = f)
TypeError: 'str' does not support the buffer interface
4

1 回答 1

2

该错误是由以下行引起的:

print(content, file = f)

print隐含地将bytes命名的对象转换content为字符串(str对象),该字符串不能以二进制模式写入文件,因为 Python 不知道要使用哪种字符编码。

你为什么要print绕道而行?只需使用以下方法将内容写入文件file.write()

with open('maceio.jpg', 'wb') as f:
    f.write(content)
于 2012-05-31T14:25:11.603 回答