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

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

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

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

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

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

这里重点介绍fromfile

numpy.fromfile(filedtype=floatcount=-1sep=''offset=0*like=None)

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

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

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

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

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

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

import numpy as np
a = 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

python使用numpy按一定格式读取bin文件相关推荐

  1. python 读取bin文件

    python读取bin文件并下发串口 # coding:utf-8import time, serialfrom struct import *import binascii file = open( ...

  2. python读取bin文件,转成16进制通信协议

    1. 项目说明 在进行远程升级单片机程序或者什么别的内容的时候,我们往往需要下载远程的bin文件,并将其内容读出,以切片的方式进行程序的更新.本项目即是使用python编写的一个读取bin文件内容,并 ...

  3. python使用fpdf生成发票格式的pdf文件包含:文字、图片logo、表格、条形码等;

    python使用fpdf生成发票格式的pdf文件包含:文字.图片logo.表格.条形码等: pip install fpdf #python使用fpdf生成发票格式的pdf文件包含:文字.图片logo ...

  4. CSR8675学习笔记:从外部Flash读取bin文件

    为了让CSR867x的开发更容易,现与思度科技联合推出CSR867x学习板[淘宝链接:思度科技CSR开发板]. 技术交流QQ群号:743434463 开发板会员QQ群号:725398389(凭订单号入 ...

  5. MFC读取bin文件并以16进制显示出来

    **MFC读取bin文件并以16进制显示出来** 最近由于项目需要.需要对目标板的bin文件进行修改后使用.所以就想自己写一个上位机小工具来进行操作,结果在做的过程中遇到了一些意想之外问题(本人MFC ...

  6. python导入txt为dataframe-python批量读取txt文件为DataFrame的方法

    我们有时候会批量处理同一个文件夹下的文件,并且希望读取到一个文件里面便于我们计算操作.比方我有下图一系列的txt文件,我该如何把它们写入一个txt文件中并且读取为DataFrame格式呢? 首先我们要 ...

  7. python 读excel中的sheet_python读取excel文件中所有sheet表格

    sales: store: """ (1)用load_workbook函数打开excel文件,返回一个工作簿对象 (2)用工作簿对象获取所有的sheet (3)第一个fo ...

  8. python csv数据处理生成图_Python 读取CSV文件数据并生成可视化图形

    CSV 文件数据读取并生成图形 CSV 文件格式 在文本文件中存储数据,最简单的方式就是将数据按照一定的格式存放在文件中,在读取文件时根据设计好的格式去将对应数据读取出来,这样就能很方便的进行简单数据 ...

  9. python读yaml的库_Python读取YAML文件过程详解

    这篇文章主要介绍了Python读取YAML文件过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 Python读取方法: import yaml ...

  10. 以命令行的格式读取音频文件信息,并将读取的内容写到输出文件中

    文章目录 c语言实现代码 运行结果 总结: 输入: wavinfo -i xxx.wav -o output.txt 输出:(格式规范)xxx=yyy rate(Hz)=16000 length=32 ...

最新文章

  1. 44种模型、1200种子网,RobustART评测CNN、Transformer、MLP-Mixer谁最鲁棒?
  2. nuget在jenkins上不能自动还原项目依赖包---笔记
  3. 大块数据申请及DMA
  4. 网络推广外包专员浅析为什么说企业网站都需要网络推广外包?
  5. MySQL更新时Error Code:1093和Error Code:1175的解决办法
  6. boost::contract模块实现check宏的测试程序
  7. Laravel查询搜索函数集合:find  first  firstWhere firstOr findOrFail firstOrFail firstOrNew firstOrCreate
  8. HDU多校1 - 6759 Leading Robots(单调栈)
  9. UVA - 10168 Summation of Four Primes(哥德巴赫猜想)
  10. mysql 5.5 免安装_mysql 5.5.56免安装版配置方法
  11. docker添加新的环境变量_docker使用教程[三]Dockfile小试牛刀
  12. linux下安装nginx1.10,Linux(RHEL7.0)下安装Nginx-1.10.2
  13. 卡爆mysql_荐 MySQL死锁和卡死分析
  14. Altium Designer 18生成Gerber教程
  15. 拨号保护,网络电话,保护隐私,匿名通话
  16. 二维码扫描的样式总结
  17. 40款非常酷的国外创意名片设计欣赏
  18. 从量子力学到量子卫星:教你成为量子科学高手
  19. pip install 和conda install的区别是什么?
  20. 2021年全球与中国激光清洗机行业市场规模及发展前景分析

热门文章

  1. 阿里巴巴Java开发手册(泰山版)【篇一】编程规约 附2: 专有名词解释 附3: 错误码列表
  2. 51开发板的功能及简单使用
  3. 网络攻防实战研究 漏洞利用与提权读书笔记二
  4. python毕业论文参考文献格式范例_毕业论文参考文献范例
  5. 招投标信息爬虫 (只上最简单的版本,仅用于技术交流)
  6. 计算机绘图尺寸标注,计算机绘图AutoCAD尺寸标注演示教学.ppt
  7. ASP.NET Core3.1 入门介绍
  8. 第一课:ASP.NET Core入门之简单快速搭建ASP.NET Core项目结构
  9. logo下方显示技术支持信息_用“技术支持信息”显示的OEM信息备份修改方法
  10. 计算机在室内设计的应用,计算机辅助设计软件在室内设计教学中的应用