2015-02-22 2 views
0

У меня есть строка бит, которую я хотел бы выводить в виде двоичного файла.Как вывести строку битов в виде двоичного файла в python

s = '10101010' 

Строка может быть намного длиннее или сложнее, чем пример выше, однако более короткая иллюстрирует точку более четко.

Я хочу вывести это так, чтобы двоичное представление нового файла было бы 10101010, а не эквивалентом строки, но я понятия не имею, как лучше всего это сделать, и любая помощь будет оценена по достоинству.

Благодаря

+1

Другими словами, вы хотите, чтобы файл содержит один байт значения 170? Можно ли предположить, что строка всегда будет содержать кратность 8 символов? Если нет, где должны быть нарисованы границы между байтами? –

ответ

2

Что вы хотите, чтобы разделить вашу строку 8-битовые кусочки, а затем конвертировать их в байты индивидуально:

for index in range(len(s)/8): 
    substring = s[index * 8: index*8 + 8] 
    byteval = int(substring, base=2) 
    print chr(byteval) 
+1

''' .join ([chr (int (s [index * 8: index * 8 + 8], base = 2)) для индекса в диапазоне (len (s)/8)])' –

+0

@KarolyHorvath: nice понимание списка; окончательно быстрее. Мой код был немного на дословной стороне, чтобы проиллюстрировать использование 'int()' для OP. –

Смежные вопросы