class FileBits: def __init__(self, fp): self.f = open(fp, 'rb') self.bit_stream = BitReader(self.f) self.bits = [] while True: x = self.bit_stream.read_bit() if not self.bit_stream.read: break self.bits.append(x) def __eq__(self, other): if len(self.bits) != len(other.bits): return False return self.bits == other.bits def __repr__(self): b = ['1' if x else '0' for x in self.bits] return ''.join(b) def __len__(self): return len(self.bits) def __del__(self): self.f.close()