繁体   English   中英

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

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

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

每个数据报应以 STX 字符 (0x02) 开始,以 ETX 字符 (0x03) 结束。 我希望我的代码测试第一个和最后一个字符,如果它们正确,则在将数据的 rest 从我的 function 中传递出来之前剥离它们,以便通过调用 ZC1C425268E687A945D1AB5074C1 进一步处理。

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

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

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

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

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

data[1:-1]

您可以使用len() function 来获取长度。

len(data)

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

data[-1]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM