我有一个字符串,每个字符最初都是一个无符号字节,但现在存储为7位并打包到无符号字节数组中。我正在尝试找到一种快速的方法来在Python中解包这个字符串,但我编写的使用bitstring模块的函数效果很好,但非常慢。看起来像这样的东西不应该如此缓慢,但我可能做得非常低效...
这似乎是一个可能微不足道的问题,但我不知道该使用什么工具,也许已经有一个函数可以解包字符串?
这似乎是一个可能微不足道的问题,但我不知道该使用什么工具,也许已经有一个函数可以解包字符串?
from bitstring import BitArray
def unpackString(raw):
msg = ''
bits = BitArray(bytes=raw)
mask = BitArray('0b01111111')
i = 0
while 1:
try:
iByte = (bits[i:i + 8] & mask).int
# value of 0 denotes a line break
if iByte == 0:
msg += '\n'
elif iByte >= 32 and iByte <= 126:
msg += chr(iByte)
i += 7
except:
break
return msg
unpackString(open("rawbytes.bin", "rb").read())
),返回'\n\n \n\n\n,\n\n\n\n\n\n\n<None>\nSC.Y\nWS.W\nWS.A\n'
-- 您确定这是正确的吗? - Dr. Jan-Philip Gehrcke