Преобразуйте двоичное строковое представление байта в фактическое двоичное значение в Python

#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]) . См.док .