我有一个二进制文件,我想用 python 读取它。我知道前 493 个字节是 x 值,接下来的 87 个字节是 y 值,最后 147 个字节是 z 值。我已经编写了一些代码,应该这样做,如下所示:
with open("file", "rb") as fileHandle:
byte = fileHandle.read(1)
datax = []
datay = []
dataz = []
dim_x = 493
dim_y = 87
dim_z = 147
while fileHandle.tell() < dim_x + dim_y + dim_z:
byte = fileHandle.read(1)
if fileHandle.tell() < dim_x:
datax.append(byte)
if dim_x < fileHandle.tell() < dim_x + dim_y:
datay.append(byte)
if dim_x + dim_y < fileHandle.tell() < dim_x + dim_y + dim_z:
dataz.append(byte)
print fileHandle.tell()
print len(fileHandle.read())
但是,当我比较fileHandle.tell()
并len(fileHandle.read())
分别产生 727 和 6304250 时。这一定意味着我只获得了部分数据?我认为 fileHandle.read(1) 会逐字节遍历文件吗?我在这里想念什么?
另一方面,如何在 Python 的简单等高线图中绘制这些数据?matplotlib 是要走的路吗?