如何从 Python 中的二进制数据中剥离第一个和最后一个字节

How to strip first and last byte from binary data in Python

我有一个 Python 程序正在从 UDP 套接字接收数据。 Python 正在将其作为二进制数据读取。

每个数据报都应该以STX字符(0x02)开始,以ETX字符(0x03)结束。我希望我的代码测试第一个和最后一个字符,如果它们正确,则在将其余数据传递出我的函数以供调用函数进一步处理之前去除它们。

我相信我可以用 data[0] 测试第一个字符。

如何获取数据的长度来测试最后一个字符?

如何获取数据的“子串”?

我很想将其解码为字符串,但怀疑这会涉及额外的开销,而且无论如何,作为 Python 新手,我不知道该怎么做。

据我了解,您需要对数据进行切片。
因此,您可以使用 data[1:] 从第二个字符到最后一个字符进行切片,但不包括使用 data[:-1]
作为两者的组合,您可以使用

data[1:-1]

您可以使用 len() 函数获取长度。

len(data)

您可以通过以下方式获取最后一个字节:

data[-1]