uchar在python中使用ushort

时间:2015-11-13 16:28:13

标签: python type-conversion

我的标题可能看起来很奇怪,因为在Python中没有像uchar和ushort这样的东西,所以让我解释一下: 我从批量传输中获得了8位数据列表,但我需要16位数据。因此我这样做:

frame = dev.read(0x82, packetLength, interface, timeout) # bulk transfer
if len(frame) == packetLength
    for i in range(0, packetLength, 2):
        newFrame.append(frame[i+1]*256 + frame[i])

所以是的它有效,但它非常慢,我需要在Raspberry Pi上运行它......

你们中有谁知道做同样事情的更好方法吗?

1 个答案:

答案 0 :(得分:2)

使用struct,解决方案是:

import struct

frame = dev.read( ... )

fmt = "<%dH" % (len(frame) / 2)
newFrame = struct.unpack(fmt, frame)

fmt字符串的说明:

  • < - 数据采用小端格式
  • %d - 数组的大小(它修改了以下格式说明符)
  • H - 格式说明符将数据解释为ushorts