两种办法
一、补充成4字节,安int方法解析
import struct
fp=open(filename,'rb') #打开文件
chunk=fp.read(3*N) #读取N个数据,占用3*N个字节
bytess=chunk[i*3:i*3+3] #读取第i个数据
bytess2=bytess+b'\x00' #在末尾补充一个空字节
value=struct.unpack('>i',bytess2)[0]/256 #按照int的方式读取数据,256是因为数据左移了8位,要变回来。
注意,本次的数据是big endian(大端)数据,因此,是在末尾补充空字节。如果是little endian
则应在开头补充。
二、调用rawulib 库解析
rawilib中有int24,用u表示.
import rawutil
fp=open(filename,'rb') #打开文件
chunk=fp.read(3*N) #读取N个数据,占用3*N个字节
bytess=chunk[i*3:i*3+3] #读取第i个数据
value=rawutil.unpack('>1u',bytess)[0] #按照int24的方式解析数据。
推荐用第二种,效率高。符号‘>’,表示大端数据。