I don’t know how to convert Python’s bitarray to string if it contains non-ASCII bytes. Example:
>>> string='x9f' >>> array=bytearray(string) >>> array bytearray(b'x9f') >>> array.decode() Traceback (most recent call last): File "<stdin>", line 1, in <module> UnicodeDecodeError: 'ascii' codec can't decode byte 0x9f in position 0: ordinal not in range(128)
In my example, I just want to somehow get a string ‘x9f’ back from the bytearray. Is that possible?
Advertisement
Answer
In Python 2, just pass it to str()
:
>>> import sys; sys.version_info sys.version_info(major=2, minor=7, micro=8, releaselevel='final', serial=0) >>> string='x9f' >>> array=bytearray(string) >>> array bytearray(b'x9f') >>> str(array) 'x9f'
In Python 3, you’d want to convert it back to a bytes
object:
>>> bytes(array) b'x9f'