https://github.com/affinelayer/pix2pix-tensorflow/tree/master/tools
Произошла ошибка при компиляции «process.py» на вышеуказанном сайте.
python tools/process.py --input_dir data -- operation resize --outp
ut_dir data2/resize
data/0.jpg -> data2/resize/0.png
Traceback (последний вызов был последним):
File "tools/process.py", line 235, in <module>
main()
File "tools/process.py", line 167, in main
src = load(src_path)
File "tools/process.py", line 113, in load
contents = open(path).read()
File"/home/user/anaconda3/envs/tensorflow_2/lib/python3.5/codecs.py", line 321, 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
В чем причина ошибки? Версия Python - 3.5.2.
источник
rb
(я думал, что порядок не имеет значения, но, кажется, по крайней мере, в некоторых системах / версиях). Я изменил свой ответ соответственно.byte 0xff in position 0
Это также может означать, что файл закодирован в формате UTF-16,with open(path, encoding='utf-16') as f:
вместо этого вы можете сделать это0xff
персонажа на этой позиции0
? И этоUTF-8
закодировано.'\xFF'
символ будет закодирован в UTF-8 как'\xC3\xBF'
. UTF-8 кодирует все символы с установленным MSB, используя два символа. (См. Выводprintf "\xff" | iconv -f latin1 -t utf-8 | xxd
в оболочке.) Дословно'\xFF'
в начале строки в кодировке UTF-8 указана ошибка кодирования (может быть названа синтаксической ошибкой в терминах UTF-8).Используйте это решение, оно удалит (проигнорирует) символы и вернет строку без них. Используйте это только если вам нужно раздеть их, а не конвертировать.
Используя
errors='ignore'
Вы просто потеряете некоторых персонажей. но если вы не заботитесь о них, поскольку они кажутся лишними символами, происходящими из-за неправильного форматирования и программирования клиентов, подключающихся к моему серверу сокетов. Тогда это простое прямое решение. ссылкаисточник
contents = contents.decode('utf-8', 'ignore')
Источник: docs.python.org/3/howto/unicode.html#the-string-typeБыла проблема, похожая на эту, закончилась использованием UTF-16 для декодирования. мой код ниже.
это будет принимать содержимое файла как импорт, но будет возвращать код в формате UTF. оттуда это будет расшифровано и отделено линиями.
источник
with open(path, encoding='utf-16') as f
TypeError: an integer is required (got type str)
. Зачем? Оба файла являются двоичными и читаются какrb
.encoding
имеет смысл только при чтении текста. Удалите «b» из аргумента mode и попробуйте снова. Подробнее читайте в документации: docs.python.org/3/library/functions.html#openИспользуйте формат кодировки ISO-8859-1 для решения этой проблемы.
источник
Я сталкивался с этой темой, когда сталкивался с той же ошибкой, после некоторых исследований, которые я могу подтвердить, эта ошибка возникает, когда вы пытаетесь декодировать файл UTF-16 с помощью UTF-8.
В UTF-16 первый символ (2 байта в UTF-16) представляет собой метку порядка байтов (BOM) , которая используется в качестве подсказки декодирования и не отображается как символ в декодированной строке. Это означает, что первый байт будет либо FE, либо FF, а второй - другим.
Сильно отредактировано после того, как я узнал реальный ответ
источник
использовать только
вместо того
источник
Если у вас Mac, проверьте наличие скрытого файла .DS_Store. После удаления файла моя программа сработала.
источник
Проверьте путь к файлу для чтения. Мой код продолжал давать мне ошибки, пока я не изменил имя пути на текущий рабочий каталог. Ошибка была:
источник
если вы получаете данные от последовательного порта, убедитесь, что вы используете правильную скорость передачи данных (и другие конфигурации): декодирование с использованием ( utf-8 ), но неправильная конфигурация вызовет ту же ошибку
чтобы проверить конфигурацию вашего последовательного порта в Linux:
stty -F /dev/ttyUSBX -a
источник
Это просто означает, что вы выбрали неправильную кодировку для чтения файла.
На Mac используйте,
file -I file.txt
чтобы найти правильную кодировку. В Linux используйтеfile -i file.txt
.источник
У меня та же проблема при обработке файла, созданного в Linux. Оказывается, это было связано с файлами, содержащими вопросительные знаки.
источник
У меня была похожая проблема.
Решил это:
Однако у меня была другая проблема. Некоторые html-файлы (в моем случае) не были utf-8, поэтому я получил похожую ошибку. Когда я исключил эти HTML-файлы, все работало гладко.
Поэтому, кроме исправления кода, проверьте также файлы, из которых вы читаете, возможно, там действительно есть несовместимость.
источник
Если возможно, откройте файл в текстовом редакторе и попробуйте изменить кодировку на UTF-8. В противном случае сделайте это программно на уровне ОС.
источник
У меня аналогичная проблема. Я пытаюсь запустить пример в tenorflow / models /jective_detection и встретил то же сообщение. Попробуйте изменить Python3 на Python2
источник