Блокнот jupyter: с открытым ('path', 'wb') в качестве файла, затем запись приводит к ошибке декодирования Unicode - PullRequest
0 голосов
/ 06 февраля 2020

** РЕДАКТИРОВАТЬ: **
Я повторил сценарий на Windows машине с Python 3.8.1, и он просто запустился. Поэтому мне кажется, что это специфическая c ошибка ноутбука jupyter ...


Извините, если это дубликат, я клянусь, что не смог найти свою проблему здесь.

Что я пытаюсь?
У меня есть небольшой скрипт python 3, который использует mysql .connector для извлечения большого двоичного изображения из базы данных.
Затем я хочу записать файл в диск, через менеджер контекста pythons:

[...]
with open('/path/to/file.png', 'wb') as file:
    file.write(cursor.fetchone()[0])
[...]

это выдает ошибку, касающуюся декодирования utf-8:

UnicodeDecodeError: 'utf8' codec can't decode byte 0x89 in position 0: invalid start byte

это оставляет меня озадаченным - не следует python просто написать вывод mysql непосредственно к файлу, как есть?
Я думал, что файловый режим 'wb' делает это.

Сценарий выполняется в блокноте jupyter.
Еще более важным является тот факт, что сценарий прекрасно работает при запуске под python 2.7 в ma c OS X.

у кого-нибудь есть подсказка, почему это происходит?

спасибо большое!

...