python-解析二进制数据
'''parse binary file.py'''
#peak intensity (photon), x (pixel), y (pixel), z (nm),
#PSFSigmaX (pixel), PSFSigmaY (pixel), Total intensity (photon),background (photon),
#SNR (peak to background e-), CRLBx (nm), CRLBy (nm), frame
import numpy as np
import struct
#输入参数
filename = '1_result2D11.txt'
dataPerLine = 12
bytePerData = 4
with open(filename,'rb') as f: #读取文件
data = [] #存放文件数据
dataline = [] #临时存放行
i = 0 #读取的数据
while True:
temp = f.read(bytePerData) #读取bytePerData个字节
if temp==b'': #文件终止
break
temp = struct.unpack('f',temp)[0] #解析数据
dataline.append(temp)
if (i+1)%dataPerLine == 0: #换行
data.append(dataline)
dataline = []
i+=1
data = np.array(data)
np.save('QC-STORM output data',data) #保存