python读写二进制文件bin
2019-07-08 本文已影响0人
此方病
请问如何能够使用python3读取二进制的.bin文件
Python中的pack和unpack的使用
参考上述文章可知,可以使用struct进行读取,即pack和unpack。
import struct
打包变长字符串
对于变长字符在处理的时候可以把字符的长度当成数据的内容一起打包。
data = struct.pack("I%ds" % (len(s),), len(s), s)
上面代码把字符 s 的长度打包成内容,可以在进行内容读取的时候直接读取。
解包变长字符串
(i,), data = struct.unpack("I", data[:int_size]), data[int_size:]
解包变长字符时首先解包内容的长度,在根据内容的长度解包数据
在我的代码里,
np.array(struct.unpack(‘%df’ % (h * w), f.read(4 * h * w)), float)
这个%df,是拆分成%d和f,%d对应数量(h*w),比如100个就是100f,f就是float。