Я пытаюсь декодировать текстовый файл с шестнадцатеричным значением. Я продолжаю получать ошибку ValueError: негексадецимальное число, найденное в аргументе fromhex() в позиции 2 ошибка

#python #python-3.x #hex

#python #python-3.x #шестнадцатеричный

Вопрос:

Я искал повсюду, чтобы найти решение, но ни одно из них не сработало. Вот код, над которым я работал на python 3.

 IPFS = open("Q.txt",)

Q = IPFS.read()

print(Q)

IPFS.close()

encoded = bytearray.fromhex(Q).decode()

print(encoded)
  

Q.txt файл содержит в себе эту строку.

51

Если вы знаете, что меня смущает, я был бы очень признателен, если бы вы сказали мне! : D

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

1. что вам print(repr(Q)) дает?

Ответ №1:

Работает нормально для меня с Python 3.9, я получаю следующий вывод :

 51 
Q
  

Вы уверены, что в вашем файле нет чего-то еще, или я не знаю… Попробуйте Ctrl A и удалите все, а затем перепишите свой 51

Ответ №2:

У меня тоже хорошо работает на Python 3.8.5. Я предполагаю, что у вас есть новая строка после 1. Поведение изменилось в версии 3.7 в соответствии с документами:

classmethod fromhex(строка) Этот метод класса bytearray возвращает объект bytearray, декодируя данный объект string . Строка должна содержать две шестнадцатеричные цифры на байт, при этом пробелы ASCII игнорируются.

Изменено в версии 3.7: bytearray.fromhex() теперь пропускает все пробелы ASCII в строке, а не только пробелы.