如何在不转换为int的情况下获取字节字符串中的单个字节

glS*_*glS 3 python byte python-3.x

我有一串类似的字节str_of_bytes = b'\x20\x64\x20',我想提取其中的第二个元素。如果我这样做str_of_bytes[1],我所得到的是int 100。我如何获取b'\x64'而不必将其转换intbytes

Tom*_*zes 5

将其提取为范围:

str_of_bytes[1:2]
Run Code Online (Sandbox Code Playgroud)

结果:

b'd'
Run Code Online (Sandbox Code Playgroud)

这和 b'\x64'

请注意,我假设您使用的是Python3。Python2的行为有所不同。

  • @KevinGuan 在 python 2 vs 3 中检查这个:```print(str_of_bytes[1:2], type(str_of_bytes[1:2]))``` 和 ```print(str_of_bytes[1], type(str_of_bytes[ 1]))``` (2认同)
  • @KevinGuan 在 Python 3 中它们不一样。正如OP所指出的,使用单个索引值会产生一个“int”。另一方面,范围产生“字节”。 (2认同)