#python
Вопрос:
У меня есть двоичное строковое представление байта, например
01010101
Как я могу преобразовать его в реальное двоичное значение и записать в двоичный файл?
Ответ №1:
Используйте int
функцию с a base
of 2
для считывания двоичного значения в виде целого числа.
n = int('01010101', 2)
Python 2 использует строки для обработки двоичных данных, поэтому вы можете использовать chr()
функцию для преобразования целого числа в однобайтовую строку.
data = chr(n)
Python 3 обрабатывает двоичные файлы и текст по-разному, поэтому вместо этого вам нужно использовать bytes
тип. Это не имеет прямого эквивалента chr()
функции, но bytes
конструктор может принимать список значений байтов. Мы помещаем n
массив из одного элемента и преобразуем его в bytes
объект.
data = bytes([n])
Как только у вас будет двоичная строка, вы можете открыть файл в двоичном режиме и записать в него данные следующим образом:
with open('out.bin', 'wb') as f:
f.write(data)
Комментарии:
1. Для python 2.6 вам, вероятно, лучше всего использовать
bytearray([n])
. См.док .