我正在处理许多不同长度的字节对象。但是,它们都将包含我想要结束的某个byte
(即,我将始终希望获得一定数量的值,但不会超过该值)。问题是它并不总是最后一个字节(所以我不能只使用[:-1]
。我从来没有对之后的内容感兴趣所以我可以忽略后来发生的事情,但我确实需要捕获它前面有什么。
Python中是否有一种方法可以切换到某个值而不是某个索引?
即
[2:'\xf0']
从第三个字节切换到\xf0
个字节?
答案 0 :(得分:1)
在Python 2.x中,您可以使用index
函数和切片,就像这样
a = bytearray(b"abcd\xf0asda")
print a[2:a.index('\xf0')]
# cd
在Python 3.x中,您只需要使用bytes
对象进行搜索,就像这样
a = b"abcd\xf0asda"
print(a[2:a.index(b'\xf0')])
# b'cd'
index
函数将在对象中返回您要查找的项目的索引。请注意,如果在对象中找不到要搜索的项目,它将引发异常。