Загрузка файлов JPG в нейронную сеть: ошибка UnicodeDecodeError

#python

#python

Вопрос:

Может кто-нибудь, пожалуйста, пролить свет на то, что не так с моим кодом и что именно вызывает эту ошибку? Я новичок в Python и хотел бы загрузить несколько JPG-файлов в эту сеть. В основном я пытался решать проблемы методом проб и ошибок и устранять неполадки на этом веб-сайте. Этот материал вредит моему мозгу, поэтому, пожалуйста, помогите новичку.

Заранее благодарю вас!

Даррен

Ошибка:

 Traceback (most recent call last):
File "gan3.py", line 30, in <module>
content = open(os.path.join(path, filename)).read()
File "/Users/darren/miniconda3/lib/python3.7/codecs.py", line 322, in 
decode (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: 
invalid start byte
  

Код:

 def loadImages(path):
    # return array of images
    imagesList = listdir(path)
    loadedImages = []
    for image in imagesList:
        img = PImage.open(path   image)
        loadedImages.append(img)
    return loadedImages
path = "input_data"
for filename in os.listdir(path):
    content = open(os.path.join(path, filename)).read()
    with open(path, 'rb') as f:
      text = f.read()
  

Приветствую, ребята!

Комментарии:

1. Слишком много кода, который не имеет отношения к проблеме. Пожалуйста, сократите код до минимального, поддающегося проверке примера.

2. Хорошо, я отредактировал его, используя последнюю обратную трассировку

Ответ №1:

По умолчанию open открывает файлы в текстовом режиме. Когда вы читаете из него, Python автоматически пытается преобразовать ваши данные в строки, что приводит к сбою, поскольку это не текст в кодировке UTF-8.

Если это изображение, вы должны открыть его в двоичном режиме:

 content = open(os.path.join(path, filename), mode='rb').read()
  

Комментарии:

1. Добро пожаловать! Кстати, обратите внимание, что если вы чувствуете, что полученный вами ответ решил вашу проблему, вы можете принять (галочка слева) и / или проголосовать (стрелка вверх) за него.

Ответ №2:

Вы можете использовать библиотеку PIL для открытия файлов изображений:

 from PIL import Image
#<----code---->
content = Image.open(os.path.join(path, filename))