python - uchar 在 python 中 ushort

标签 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 上运行它......

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

最佳答案

使用 struct ,解决方案是:

import struct

frame = dev.read( ... )

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

fmt的解释字符串:

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

关于python - uchar 在 python 中 ushort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33697414/

相关文章:

python - 如何将 cookie/session 从 Mechanize 导出到 Selenium

python - 我们如何在多个表中引用一个外键?

python - Instagram 私有(private) API 403,即使有 cookie 和 header

python - 计算 N 叉树的奇数个数

c++ - 如何在同一可变参数模板的不同实例之间进行转换?

来自字符串的 C++ 整数

Python 2.7 和 3.3.2,为什么 int ('0.0' ) 不起作用?

c++ - 如何将格式长值 20010203 转换为字符串 2001-02-03?

python - 我想知道为什么这行得通

java - 使用泛型来替换特定的类类型