Python 我可以从另一个字节对象获得长度为1的字节对象,而无需切片吗?

Python 我可以从另一个字节对象获得长度为1的字节对象,而无需切片吗?,python,string,python-3.x,byte,Python,String,Python 3.x,Byte,这是获取二进制数据字节的唯一方法吗 index = 40 data = afile.read() byte = data[index:index+1] # <- here 从字节中: 由于字节对象是整数序列(类似于元组),因此对于字节对象b,b[0]将是整数,而b[0:1]将是长度为1的字节对象。(这与文本字符串形成对比,在文本字符串中,索引和切片都将生成长度为1的字符串) 因此byte=data[index]为byte分配一个整数值,正如错误消息所指出的,它不支持缓冲区接口 您可以编写

这是获取二进制数据字节的唯一方法吗

index = 40
data = afile.read()
byte = data[index:index+1] # <- here

字节中

由于字节对象是整数序列(类似于元组),因此对于字节对象b,
b[0]
将是整数,而
b[0:1]
将是长度为1的字节对象。(这与文本字符串形成对比,在文本字符串中,索引和切片都将生成长度为1的字符串)

因此
byte=data[index]
byte
分配一个整数值,正如错误消息所指出的,它不支持缓冲区接口

您可以编写以下内容,而不是
byte=data[index:index+1]

byte = bytes([data[index]])
。。。依赖于这样一个事实,
字节
构造函数,如果传递了一个序列(注意
数据[index]
周围的括号),将使用它来创建一个
字节
对象-但这实际上不再具有可读性,并且速度明显较慢(在我使用Python 3.4的机器上是6倍)

byte = bytes([data[index]])