Можете ли вы указать шестнадцатеричное в качестве типа кодировки при открытии файла в Python? - PullRequest
0 голосов
/ 21 июня 2019

Я постоянно сталкиваюсь с ошибками при открытии файла в моей программе. Исходный код был простым вызовом для открытия, f = open(file_name, 'w') или with open(file_name) as f:. Оба из них бросили подобные ошибки вида UnicodeEncodeError: 'charmap' codec can't encode characters: character maps to <undefined>.

Ответы на подобные вопросы должны были указывать encoding='utf-8' внутри функции открытия, которую я пробовал, и это все равно приводило к ошибке. Другим ответом на тот же вопрос было установить encoding='Latin1', но это было рекомендовано против, потому что - насколько я понимаю - Latin1 будет работать с любым типом файла независимо от того, правильно ли он кодирует его или нет. Если это дезинформация, пожалуйста, дайте мне знать, потому что я попробовал это с использованием Latin1 независимо от того, и он работал без ошибок.

Я даже пытался загрузить редактор, который сообщает вам метод кодирования, предпочтительный для файла, который вы используете. Я дал ему один из файлов .h5, которые я пытаюсь открыть в программе, и он сказал, что я должен использовать шестнадцатеричный код, который мне удалось найти поддержку только через модуль кодеков при использовании функции кодировщика. через Sublime Text

Выше я думаю, что использование Latin1 может быть неправильной практикой. Поэтому мой вопрос:

Есть ли способ указать шестнадцатеричное значение для параметра кодирования открытой функции python? Если так, как это будет сделано? (Должен отметить, что я попробовал очевидные решения encoding='hex', encoding='hexadecimal', и оба они были не распознаны) И / или использует неправильную практику Latin1 для файлов .h5, которые я пытаюсь открыть?

...