在Python中读取二进制数据(ieee-le)

sum*_*oss 5 python binary ieee-754 bin

我正在尝试在 Python 中打开一个二进制文件,在 Matlab 中我正在使用该文件

data = fread(file, [rows, cols], 'float','ieee-le')

在Python中我尝试了两者

data = open(file,'rb').read()&

data = np.fromfile(file, dtype=data_type, count=count)

两者都没有给出预期的结果(对于 data_type 我尝试了信息页面上列出的所有格式)。

仅读取数据,前 25 个样本如下所示:

b'\xe4\xa0B\xbc\x99\x9e\x1f\xbd\xc3\x07P>m\xe0\x96=\x0c\xf6\x8a=\x90\x86\t>)

在寻找解决方案时,我偶然发现了 Python 的 struct 包,但由于我对数据格式几乎一无所知,所以我无法使用它来解决问题。因此,任何帮助将不胜感激......

lll*_*lll 5

在numpy中,ieee-le float类型是'<f4',其读作“4字节的小端浮点数”。

因此,您可以使用以下命令打开文件:

data = np.fromfile(filename, dtype='<f4', count=count)
Run Code Online (Sandbox Code Playgroud)