What do you want to do? Converting the binary 010010 in 8 bit chunks?
# example with encoding
result = []
with open('binary_file.txt') as open_file:
# loop vorever
while True:
# read 8 bytes, return value is a str
data = open_file.read(8)
# if a str, bytes or some other sequence or
# container is empty, it's boolean is False
if not data:
# break out of the loop
break
# convert binary (0101010011) into
# a int
value = int(data, 2)
# append the value to the list
result.append(value)
# example without encoding
# resulting object of read method is bytes
result = []
with open('binary_file.txt', 'rb') as open_file:
# loop vorever
while True:
# read 8 bytes, return value is bytes
data = open_file.read(8)
# if a str, bytes or some other sequence or
# container is empty, it's boolean is False
if not data:
# break out of the loop
break
# convert binary (0101010011) into
# a int. bytes can also used as input, but
# it must be a valid value for the required
# conversion. In this case only 0 and 1 is allowed
# 0 = 0x30 and 1 = 0x31
value = int(data, 2)
# append the value to the list
result.append(value)
Usually values like integers, floats or complex are stored in binary form using the maximum possible of one or more bytes.
In your case one byte counts as one bit.
Quote:Init signature: int(self, /, *args, **kwargs)
Docstring:
int([x]) -> integer
int(x, base=10) -> integer
Convert a number or string to an integer, or return 0 if no arguments
are given. If x is a number, return x.__int__(). For floating point
numbers, this truncates towards zero.
If x is not a number or if base is given, then x must be a string,
bytes, or bytearray instance representing an integer literal in the
given base. The literal can be preceded by '+' or '-' and be surrounded
by whitespace. The base defaults to 10. Valid bases are 0 and 2-36.
Base 0 means to interpret the base from the string as an integer literal.
>>> int('0b100', base=0)
4
Type: type
Subclasses: bool, IntEnum, IntFlag, _NamedIntConstant