在Python中处理大型二进制文件

时间:2018-12-17 23:07:24

标签: python binary

我有一个二进制文件(> 1GB),其中包含在Matlab中创建的单精度数据。

我是Python新手,想在Python中读取相同的文件结构。

任何帮助将不胜感激:

我可以从Matlab加载文件,如下所示:

fid = fopen('file.dat','r');

my_data = fread(fid,[117276,1794],'single');

非常感谢

InP

1 个答案:

答案 0 :(得分:0)

使用numpy通过fromfile https://docs.scipy.org/doc/numpy/reference/generated/numpy.fromfile.html最简单:

np.fromfile('file.dat', dtype=np.dtype('single')).reshape((117276, 1794))

其中np.dtype('single')np.dtype('float32')相同

请注意,由于MATLAB会按列顺序读取,而numpy会按行顺序进行重塑,因此它可能会根据您想要的内容进行转置。

此外,我假设使用numpy是可以的,因为您来自MATLAB,如果您想继续拥有类似MATLAB的函数,而不必像这些答案那样处理纯python,那么最终可能会使用numpy {{ 3}}