1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python使用numpy按一定格式读取bin文件

python使用numpy按一定格式读取bin文件

时间:2021-11-08 14:55:40

相关推荐

python使用numpy按一定格式读取bin文件

python环境下,如何使用numpy像matlab一样按一定格式读取bin文件?

bin文件就是将数据按16进制形式存储的二进制文件(binary),可以使用WINHEX、Notepad++(需安装插件)等以16进制形式打开,如图用notepad++打开。

由于使用python中的read()读取二进制文件时是以字符串形式读取,且每次只能读取一个字节,十分不方便。

偶然发现可以使用numpy中的fromfile按指定格式对bin文件进行读写,方便了许多。

NumPy提供了多种存取数组内容的文件操作函数。保存数组数据的文件可以是二进制格式或者文本格式。二进制格式的文件又分为NumPy专用的格式化二进制类型和无格式类型。

tofile()将数组中的数据以二进制格式写进文件tofile()输出的数据不保存数组形状和元素类型等信息fromfile()函数读回数据时需要用户指定元素类型,并对数组的形状进行适当的修改

这里重点介绍fromfile

numpy.fromfile(file,dtype=float,count=-1,sep='',offset=0,*,like=None)

file:是待读取内容,可以是文件、路径、字符串

dtype:返回数组的数据类型。对于二进制文件,它用于确定文件中项目的大小和字节顺序。支持大多数内置数字类型,也支持扩展类型。1.18.0开始支持复数格式

count:要读取的项目数量(不一定以字节为单位),count = -1表示读取所有项目(即完整文件)

sep:项目之间的分隔符(如果文件是文本文件)。空(“”)分隔符表示文件应被视为二进制文件。分隔符中的空格(“”)与零个或多个空格字符匹配。仅由空格组成的分隔符必须至少匹配一个空格

offset:距文件当前位置的偏移量(以字节为单位)。默认为0。仅允许用于二进制文件。可以和count搭配用于读取指定位置和长度的内容

like:引用对象以允许创建非NumPy数组的数组,如果传入一个像like一样支持__array_function__协议的数组形式,结果将由它来定义。在这种情况下,它确保创建与通过此参数传入的对象兼容的数组对象。

import numpy as npa = np.arange(24)b = np.fromfile("F:/a.bin", dtype=np.int32, count=5, offset=8)print(a, '\n', b)

由上图可以看出,数据是以32位的十六进制数形式存储,也就是一个数占4个字节。(tofile写入数据的顺序为 ‘C’order)。此时,若设置count=5, offset=8,也就是从0开始偏移8个字节,读取5个数,结果如图:

参考文献:numpy.fromfile — NumPy v1.21 Manual

NumPy 文件存取 tofile,fromfile, load,save

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。