[英]Socket error: "UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte"
[英]UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
我正在嘗試從鏈接中抓取圖片並將其放入圖像文件中。 請求響應返回字節流。 所以我正在使用decode('utf-8')轉換為unicode流,但是,我遇到了以下錯誤:
打印(info.decode(('utf-8')))
UnicodeDecodeError:“ utf-8”編解碼器無法解碼位置0的字節0xff:無效的起始字節
from urllib import request
img = request.urlopen('http://www.py4inf.com/cover.jpg')
fhand = open('cover.jpg', 'w')
size = 0
while True:
info = img.read(100000)
if len(info) < 1 : break
size = size + len(info)
print (info.decode(('utf-8')))
fhand.write(info.decode(('utf-8')))
print (size,'characters copied.')
fhand.close()
請讓我知道我該如何進行。 謝謝。
請勿對JPG圖像使用Unicode轉換。
Unicode用於文本。 您下載的不是文本,而是其他內容。
嘗試這個:
from urllib import request
img = request.urlopen('http://www.py4inf.com/cover.jpg')
fhand = open('cover.jpg', 'wb')
size = 0
while True:
info = img.read(100000)
if len(info) < 1 : break
size = size + len(info)
fhand.write(info)
print (size,'characters copied.')
或者,更簡單地說:
from urllib import request
request.urlretrieve('http://www.py4inf.com/cover.jpg', 'cover.jpg')
應該以二進制模式打開文件,然后可以逐字節復制流字節。 由於shutil
已經擁有一個方便的幫助程序實用程序,因此您可以
import shutil
import os
from urllib import request
img = request.urlopen('http://www.py4inf.com/cover.jpg')
with open('cover.jpg', 'wb') as fhand:
shutil.copyfileobj(img, fhand)
print(os.stat('cover.jpg').st_size, 'characters copied')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.