1. 读入文件内容
a.txt中保存十六进制数据
0020
fp = open("a.txt", r)
lines = fp.readlines()
2. 截取文件中的十六进制数据,
方法一:利用struct和frombuffer
import struct
for line in linel:
while(len(line) > 3):
shex0 = line[-4:]
bhex0= struct.pack("H", int(shex0,16)) #按照给定的格式(fmt),把数据封装成字符串(实际上是类似于c结构体的字节流)
fhex0 = np.frombuffer(bhex0, dtype=np.float16)[0] #将字节流字符串转换成numpy float16数据类型
line = line[:-4]
方法二: 直接利用np.array view
import struct
for line in linel:
while(len(line) > 3):
shex1 = line[-4:]
fhex1 = np.array(int(shex1, 16), dtype='int16').view(np.float16)
line = line[:-4]