Чтение файла с шестнадцатеричными данными и сохранение в списке в Python

1

У меня есть файл с именем k_hex который содержит данные ниже. Я прочитал данные из файла, используя команду ниже, и я хочу сохранить данные в списке.

hex_data = open('k_hex','r').read()
print hex_data
@0
45
4C
4C
41
00
07
00
00
10

Я хочу, чтобы мои данные были в формате ниже. Как я могу это получить, я новичок в Python.

hex_data = [0x@0, 0x45, 0x4C, 0x4C, 0X41, 0x00, 0x07, 0x00, 0x00, 0x10]

Можете ли вы кого-нибудь, пожалуйста, дать мне знать, как достичь 2-й части?

Благодарю.

  • 0
    Если вы прочтете строку файла вовремя, вы упростите свою жизнь. Что касается 2-й части, то целое число будет отображаться как целое число, если вы не преобразуете его в шестнадцатеричную строку, поэтому вы получите список типа ... '0x10']. Это нормально? (Если нет, почему вы хотите «формат» в шестнадцатеричном формате?)
  • 0
    @doctorlove Я хочу что-то вроде этого [0x11, 0x22, 0x33], я не хочу эти цитаты. В любом случае, пожалуйста. Мне это нужно в шестнадцатеричном формате, потому что мне нужно записывать данные в мою vip-память в байтах.
Показать ещё 2 комментария
Теги:
hex

1 ответ

2
Лучший ответ
hex_data = ["0x" + hh for hh in hex_data.split()]

hex_data.split() разбивает ваш файл на список пар шестнадцатеричных символов, а "0x" + hh будет давать символы Ox перед ними.

  • 0
    возможно ли удалить эти одинарные кавычки ...... ['0x @ 0', '0x45', '0x4C', '0x4C', '0x41', '0x00', '0x07', '0x00', ' 0x00 ',' 0x10 ',' 0x06 ',' 0x6E ',' 0x00 ',' 0x01 ',' 0x00 ',' 0xE4 ',' 0x05 ']
  • 0
    Эти одинарные кавычки являются только синтаксисом Python для строк - они не являются ни частью самой строки (например, в памяти или на диске), ни выводом функции print() . Вы можете преобразовать их в целые числа с помощью функции int() со вторым параметром 16 , например, int('0x6E', 16) даст вам число 110 .

Ещё вопросы

Сообщество Overcoder
Наверх
Меню