#python #byte #bit #compiled
Вопрос:
Мне нужно перенести скомпилированный код в необработанные биты, а затем обратно в скомпилированный код для проекта. Я перевел свой файл .uf2 в Python, и я получил его в виде байтов и в виде текста ANSI, но я не понял, как превратить его в биты. Я могу добавить этот вывод здесь, но он невероятно длинный, поэтому для удобства чтения я его опустил. По расширению я также не понял, как превратить его обратно в функционирующий файл .uf2. У кого-нибудь есть какие-нибудь идеи? Возможно ли вообще взять скомпилированный код и превратить его в биты, не разрушая его?
Редактировать: Вот мой код до сих пор. Мне нужно иметь доступ к битам, а не к байтам. Данные кодируются в ANSI.
fpath= input("File path: ") f = open(fpath,'rb') hexdec = f.read() print(hexdec) decode = hexdec.decode('ansi') print(decode)
Комментарии:
1. Совершенно неясно, каков полный контекст. В чем разница между «необработанными битами» и «двоичными»? Двоичный файл, в конце концов, — это просто необработанные биты. Пожалуйста, покажите код, который у вас есть, и опишите в коде, что отсутствует/неверно.
2. Извините, это была опечатка
3. Когда вы говорите о том, чтобы превратить его в кусочки, что вы имеете в виду ? hexdec = f.read() уже является двоичными данными
4. Мне нужно прочитать код в виде отдельных битов (100110), вывод, как я понимаю, в байтах
5. Когда вы говорите, что читаете код в битах, вы имеете в виду печать 1 и 0 ?
Ответ №1:
Вы можете преобразовать шестнадцатеричную строку в массив байтов с помощью fromhex()
метода bytearray
Тогда это простой вопрос обратной записи двоичного файла
binary_data = bytearray.fromhex(hex_string) newfile = open(path, 'wb') newFile.write(binary_data) newFile.close()