Ben*_*eng 0 python indexing byte position serial-port
我有一个简单的函数来从串行端口读取字节。
简单的代码看起来像
read_bytes = serial.read(5)
之后我打印结果,例如我有
b'\x01\x02\x03\x04\x05'
有一个选项可以捕获特定位置的字节吗?例如,如果我想在第二个位置打印字节,它应该为我打印b'\x02'。我阅读文档,但功能find并index做不同的事情。
您可以将该 bytes类视为可迭代对象,并且可以像使用简单的字符串一样访问其元素,例如:
read_bytes = b'\x01\x02\x03\x04\x05'
read_bytes[2]
# 3
read_bytes[0]
# 1
Run Code Online (Sandbox Code Playgroud)
因此只需使用列表索引来访问具有特定索引的元素即可。
如果您想将元素作为bytes对象检索,您可以将其从序列中切片:
read_bytes[2:3]
# b'\x03'
read_bytes[0:1]
# b'\x01'
Run Code Online (Sandbox Code Playgroud)
更详细的方法是获取元素并将其转换为bytes
bytes([read_bytes[2]])
Run Code Online (Sandbox Code Playgroud)
注意:您必须在可迭代中传递值,否则bytes将返回一个空字节序列,其长度为接收到的整数值。