首先,我是python的新手。
我已经阅读了一个视频文件,将其解压缩为int元组,现在想以十六进制显示字节。我也希望每个十六进制字节都用空格分隔。输出到gui窗口,因此我通过处理切片的tuple一次处理一行。
df <- data.frame(ca = c("a","b","a","c","b", "b"),
f_new = c(3,9,6,1,12, 11),
f3 = c(3,0,6,3,0, 8))
和' '.join
似乎是我想要的,但是hexlify()
需要一个字节对象,而我似乎无法将int元组哄骗到一个字节对象。
hexlify
失败,因为buf = ' '.join(hexlify(bytes(packet[c:c+cols])))
想要一个字符串而不是整数元组。
我怀疑有类似的解决方案
bytes()
以buf = ' '.join(hexlify([struct.pack("B",b&0xff) for b in packet[c:c+cols]]))
失败
和
TypeError: a bytes-like object is required, not 'list'
失败buf = ' '.join(hexlify(bytes([struct.pack("B",b&0xff) for b in packet[c:c+cols]])))
尝试手动构建字节对象
TypeError: 'bytes' object cannot be interpreted as an integer
但是ba = self.toByteArray(packet[c:c+cols])
buf = ' '.join(hexlify(ba))
...
def toByteArray(self, intTuple):
buf = bytearray()
for b in intTuple:
buf.append(b) #struct.pack("B",b))
return buf
转换将参数解释为ascii。注释掉的版本也因
bytearray.append()
buf.append(struct.pack("B",b))
应该不难吗?