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)

printbytesという名前のオブジェクトを暗黙的contentに文字列 ( strobject ) に変換します。Python は使用する文字エンコーディングを認識していないため、バイナリ モードでファイルに書き込むことはできません。

そもそもなんでprint迂回してんの?file.write()メソッドを使用してコンテンツをファイルに書き込むだけです。

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