【发布时间】:2013-11-05 23:52:02
【问题描述】:
好的,我想在 Python 3.3.2 中将像 '1010110000000010' 这样的二进制字符串转换为 bytes 对象。有谁知道我该怎么做?谢谢!
【问题讨论】:
标签: python-3.x binary byte
好的,我想在 Python 3.3.2 中将像 '1010110000000010' 这样的二进制字符串转换为 bytes 对象。有谁知道我该怎么做?谢谢!
【问题讨论】:
标签: python-3.x binary byte
如果你想要b'1010110000000010',请使用bytes 或str.encode:
>>> bytes('1010110000000010', encoding='ascii')
b'1010110000000010'
>>> '1010110000000010'.encode('ascii')
b'1010110000000010'
>>> '1010110000000010'.encode() # can omit encoding (default: utf-8)
b'1010110000000010'
如果您想要b'\xac\x02',请使用bytes 与转换后的整数(使用int 与基数2),或struct.pack:
>>> bytes(int(b[i:i+8], 2) for i in range(0, len(b), 8))
b'\xac\x02'
>>> import struct
>>> b = '1010110000000010'
>>> b''.join(struct.pack('B', int(b[i:i+8], 2)) for i in range(0, len(b), 8))
b'\xac\x02'
【讨论】: