закодировать тип данных байта из двоичного файла в python3 - PullRequest
0 голосов
/ 19 мая 2019

У меня есть бинарный файл, и когда я открываю его в 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])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...