Zapisywanie bitów do pliku binarnego

Mam 23 bity reprezentowane jako ciąg znaków i muszę napisać ten ciąg do pliku binarnego jako 4 bajty. Ostatni bajt to zawsze 0. Poniższy kod działa (Python 3.3), ale nie wydaje się bardzo elegancki (jestem raczej nowy w Pythonie i programowaniu). Czy masz jakieś wskazówki, jak je ulepszyć? Wygląda na to, że pętla for-loop może być przydatna, ale jak zrobić wycinanie w pętli bez uzyskania błędu IndexError? Zauważ, że kiedy wyodrębniam bity w bajt, odwracam kolejność bitów.

from array import array

bin_array = array("B")
bits = "10111111111111111011110"    #Example string. It's always 23 bits
byte1 = bits[:8][::-1]
byte2 = bits[8:16][::-1]
byte3 = bits[16:][::-1]
bin_array.append(int(byte1, 2))
bin_array.append(int(byte2, 2))
bin_array.append(int(byte3, 2))
bin_array.append(0)

with open("test.bnr", "wb") as f:
    f.write(bytes(bin_array))

# Writes [253, 255, 61, 0] to the file

questionAnswers(4)

yourAnswerToTheQuestion