python读取二进制文件并画图_使用Python读取二进制文件的实例讲解
目标:目标文件为一个float32型存储的二进制文件,按列优先方式存储。本文使用Python读取该二进制文件并使用matplotlib.pyplot相关工具画出图像
工具:Python3, matplotlib,os,struct,numpy
1. 读取二进制文件
首先使用open函数打开文件,打开模式选择二进制读取"rb"。
f = open(filename, "rb")
第二步,需要打开按照行列读取文件,由于是纯二进制文件,内部不含邮任何的数据结构信息,因此我们需要给定二进制数据的行数列数(nx和ny)来确定图像的形状。这里我们的数据类型是float32型的,对应过来是4bytes,使用for循环逐个read4个字节。
for i in range(nx):
for j in range(ny):
data = f.read(4)
得到的结果如下:
b'5x9dx82xc3'
b'xb1x04x10xc4'
b'xc1x9eDxc4'
b'ax86Rxc4'
b'x15x01=xc4'
可以看到,读入的数据为十六进制数,这个时候的数据并不能直接用来画图,需要转换为float32型。这里使用struct.unpack来转译
data_float = struct.unpack("f", data)[0]
就可以得到正确的结果了
-261.2281799316406
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
