Преобразовать двоичное строковое представление байта в фактическое двоичное значение в Python - PullRequest
6 голосов
/ 27 августа 2011

У меня есть двоичное строковое представление байта, например

01010101

Как я могу преобразовать его в реальное двоичное значение и записать в двоичный файл?

1 Ответ

9 голосов
/ 27 августа 2011

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