在Python中读取大端二进制文件

3

我想使用Python读取一个大型二进制文件,其中包含IEEE大端64位浮点格式的数据,但是我在获取正确值方面遇到了问题。我在Matlab中有一个可行的方法,如下所示:

fid=fopen(filename,'r','ieee-be');
data=fread(fid,inf,'float64',0,'ieee-be');
fclose(fid)

我在Python中尝试了以下代码:

data = np.fromfile(filename, dtype='>f', count=-1)

这个方法不会抛出任何错误,但是它读取的值非常大且不正确。有人能帮忙找到读取这些文件的方法吗?提前感谢。


你能否添加一个类似这样文件的示例链接? - Yuval Pruss
1个回答

4

使用>f将会给你一个单精度(32位)浮点数值。相反,建议使用

data = np.fromfile(filename, dtype='>f8', count=-1)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接