我需要读取二进制文件,该文件由19个float32数字组成,后跟一个未知数量的uint32数字。我如何在python中读取这样的文件?
在Matlab中,等效项如下所示:
fid = fopen('myFile.bin','r');
params = fread(fid,19,'float');
data = fread(fid,'uint32');
fclose(fid);
Run Code Online (Sandbox Code Playgroud)
使用numpy.fromfile()方法,并向文件传递带有相应数量的要读取的项目的句柄。
import numpy as np
with open('myFile.bin', 'rb') as f:
params = np.fromfile(f, dtype=np.float32, count=19)
data = np.fromfile(f, dtype=np.int32, count=-1) # I *assumed* here your ints are 32-bit
Run Code Online (Sandbox Code Playgroud)
如果要获取标准的Python列表而不是数组,请延迟.tolist()到fromfile()(像这样的np.fromfile(...).tolist())结束括号numpy。