Как удалить кодировку 'b' в строке, которая была прочитана из файла? - PullRequest
0 голосов
/ 07 апреля 2019
trainLabels = files.upload()
labels = (trainLabels['LabelsTrain.txt']).splitlines()
trainLabels = [k.encode("utf-8") for k in labels]

Я использую Google Colab для обучения сети.Я читаю метки изображений из текстового файла, и они кажутся закодированными.

Метки отображаются как:

[b'53.239448782705836', b'24.01860123103387', b'32.0400103628653']

Поэтому я пытаюсь удалить 'b' с помощью encode("utf-8").Тем не менее, я получаю следующую ошибку:

  AttributeError: 'bytes' object has no attribute 'encode'

Как мне решить эту ошибку?

1 Ответ

1 голос
/ 07 апреля 2019

Когда вы читаете файл, строки по-прежнему имеют байтовый тип, закодированный в utf или ascii.

В питоне encode делает строку равной byte type, и ваши данные уже b (тип байта).

Так что невозможно, чтобы byte снова кодировал в Unicode byte в python. Это делает эту ошибку.

Выглядит как читаемый в интерпретаторе Python (он просто отображается для читаемого человеком), но реальные данные кодируются в байтовом формате Unicode.

Таким образом, использование decode превращает bytestrem в текст Unicode в интерпретаторе python, он обрабатывает текст без b

Итак, все будет хорошо работать с изменением encode на decode.

trainLabels = [k.decode("utf-8") for k in labels]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...