我有获取数据包的while循环
unpackedData = struct.unpack("!BBHHHBBH4s4sHH4s4s4sHH4s", data[:44])
此行抛出异常
Unpack需要长度为44 python的字符串参数
但是在使用调试器之后我注意到它发生在几个循环之后,我认为它是因为缓存已经填满。
有没有办法清除python缓存或销毁对象或类似的东西?
答案 0 :(得分:2)
我最好的猜测是,在你的while循环中,你每次将data
字符串缩短44个字符,但是44不会均匀地划分你的原始字符串,所以在最后一次迭代你剩下一段长度小于44个字符的字符串。
python不会抱怨切片,它只返回一个小于你预期的字符串。 e.g:
print len("foo"[:500]) #3
print "foo"[:500] #foo