Я хочу прочитать двоичный файл, получить содержимое четыре байта на четыре байта и выполнить int-операции над этими пакетами.Python3 чтение двоичного файла, 4 байта за раз и xor с 4-байтным длинным ключом
Используя фиктивный двоичный файл, открыл этот путь:
with open('MEM_10001000_0000B000.mem', 'br') as f:
for byte in f.read():
print (hex(byte))
Я хочу, чтобы выполнить шифрование с длинным ключом 4 байта, 0x9485A347
, например.
Есть ли простой способ читать мои файлы по 4 байта за один раз и получать их как int или мне нужно поместить их во временный результат с помощью счетчика?
Моя первоначальная идея заключается в следующем:
current_tmp = []
for byte in data:
current_tmp.append(int(byte))
if (len(current_tmp) == 4):
print (current_tmp)
# but current_tmp is an array not a single int
current_tmp = []
В моем примере, вместо того, чтобы [132, 4, 240, 215]
я предпочел бы 0x8404f0d7
OP хочет '[132, 4, 240, 215]' конвертировать в '0x8404f0d7', т. Е. Вам нужен большой размер. –
Также остерегайтесь последних байтов, если размер файла не кратен 4 ... –
Спасибо - исправлены обе вещи – jsbueno