У меня есть бинарный файл, и когда я открываю его в python, данные будут выглядеть так:
b'\x00\x20\x00\x2A\x02\x01'
данные представлены в парах. в приведенном выше примере есть 3 пары (\x00\x20 \x00\x2A \x02\x01
). Я хочу изменить входной файл, а затем записать его в двоичный файл. изменение заключается в следующем:
в каждой паре, если 1-й элемент равен 0, 2-й элемент будет в выходном файле. если 1-й элемент равен 1, 2-й элемент из предыдущей пары будет в выходном файле. если 1-й элемент больше 1, то это будет сложнее. это будет зависеть от 2 предметов в одной паре. например, 1, если 1-й элемент равен 2, а 2-й элемент равен 1, чтобы получить номер для вывода, программа возвращает 2 элемента обратно в вывод и использует этот элемент в качестве вывода.
пример2: если 1-й элемент равен 2, а 2-й элемент равен 2, чтобы получить число для вывода, программа возвращает 2 элемента обратно в вывод и использует этот элемент плюс 1 элемент после этого в качестве вывода.
вот ожидаемый результат:
b'\x20\x2A\x20'
Я попытался сделать это, используя следующий код на python, но не вернул ожидаемый результат. так как я совсем новичок в работе с бинарными файлами, не могли бы вы помочь мне это исправить? или дать мне несколько советов, чтобы получить такой вывод?
data = b'\x00\x20\x00\x2A\x02\x01'
out = bytearray()
for i in range(len(data)):
if i % 2 !=0:
if data[i] ==0:
out.append(data[i+1])
elif data[i] ==1:
out.append(data[i-1])
elif data[i] >1:
n = data[i]
for j in range(n):
out.append(n[0:j])