将1和0的字符串转换为字节数组

Chr*_*ieb 4 python

我有一个字符串,其长度是8的倍数,只包含0和1.我想将字符串转换为适合写入文件的字节数组.例如,如果我有字符串"0010011010011101",我想得到字节数组[0x26,0x9d],当写入文件时,它将给出0x269d作为二进制(原始)内容.

我怎么能用Python做到这一点?

Gre*_*ill 5

你可以这样做:

>>> s = "0010011010011101"
>>> [int(s[x:x+8], 2) for x in range(0, len(s), 8)]
[38, 157]
Run Code Online (Sandbox Code Playgroud)


Mar*_*wis 5

py> data = "0010011010011101"
py> data = [data[8*i:8*(i+1)] for i in range(len(data)/8)]
py> data
['00100110', '10011101']
py> data = [int(i, 2) for i in data]
py> data
[38, 157]
py> data = ''.join(chr(i) for i in data)
py> data
'&\x9d'
Run Code Online (Sandbox Code Playgroud)