这是我在Python中的第一段代码,我遇到了以下问题:
我正在读取一个二进制文件,如下:
def read_file(file):
with open(file, "rb") as f:
frame = f.read()
print(type(frame)) #out = <class 'bytes'>
return frame
我需要将所有向量转换为整数值,而不是将它们作为字节使用。
打印后,我得到类似于这样的输出:
print(frame[0:10])
b'\xff\xff\xff\xffXabccc'
然而,如果我只传递一个位置进行打印,我会得到这个结果:(整数值是正确的,但我只使用print函数获得它们)
print(frame[0])
255
print(frame[1])
255
print(frame[2])
255
print(frame[3])
255
print(frame[4])
88
print(frame[5])
97
print(frame[6])
98
print(frame[7])
99
print(frame[8])
99
print(frame[9])
99
print(frame[10])
98
问题是:我如何一次性将数组中的所有位置转换?我想要运行以下代码
print(frame[0:10])
并获得类似的东西
[255, 255, 255, 255, 88, 97, 98, 99 ,99, 99, 98]
frame
并__不是__一个bytearray
,而是一个bytes
对象。这两者在Python中都存在,但前者是可变的,而你的bytes
对象则不是。 - JohanL