Python3按一定数据位数格式处理bin文件的方法


Posted in Python onJanuary 24, 2019

因为研究生阶段经常用MATLAB作图,处理数据,但是MATLAB太过于庞大,不方便,就想用python处理。

问题:我们通常处理的最原始的数据是bin文件,打开后如下所示,是按16进制形式存储的。

Python3按一定数据位数格式处理bin文件的方法

MATLAB处理时,是按照如下方式读取前10个数,int32数据格式,上图中的红色圈表示MATLAB读取的一个数据,前10个数据表示元数据。

Python3按一定数据位数格式处理bin文件的方法

MATLAB读取的前10个数据的结果:

Python3按一定数据位数格式处理bin文件的方法

而Python中似乎没有可以在指定数据格式位数下读取bin文件中数据,例如想以python中的read()读取时,图一中的蓝线所圈的表示一个数据,图中圈了两个数据。用以下程序读取MATLAB所读取的10各数据,则需要读40个。

Python3按一定数据位数格式处理bin文件的方法

结果如下:也是16进制

Python3按一定数据位数格式处理bin文件的方法

每隔三个数据对应时MATLAB读取的数据。

想到用struct包里面的unpack函数解决问题,可以可惜的时python中unpack不支持float32,也不支持int32,所以上面在用python读取数据时,不能以32位读取,最多以8位读,从而python挨个读取时一个蓝线圈里的数据。

# 按照给定的格式(fmt)解析字节流string,返回解析出来的tuple

unpack(fmt, string)

string类似于:\x00\x00\x00\x0c\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00]\x00\x00\x00\x0c\x00\x00\x00\x08\x00\x00\x00\t\x00\x00

FORMAT C TYPE PYTHON TYPE STANDARD SIZE NOTES
x pad byte no value
c char string of length 1 1
b signed char integer 1 (3)
B unsigned char integer 1 (3)
? _Bool bool 1 (1)
h short integer 2 (3)
H unsigned short integer 2 (3)
i int integer 4 (3)
I unsigned int integer 4 (3)
l long integer 4 (3)
L unsigned long integer 4 (3)
q long long integer 8 (2), (3)
Q unsigned long long integer 8 (2), (3)
f float float 4 (4)
d double float 8 (4)
s char[] string
p char[] string
P void * integer (5), (3)

个人觉得python这方面做的没有matlab好,

所以python不能以类似于MATLAB中fread(f,N,int32)或者fread(f,N,real*4)的方式读取上图中的字符流,也无法解析。

以上这篇Python3按一定数据位数格式处理bin文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中计算三角函数之cos()方法的使用简介
May 15 Python
python用10行代码实现对黄色图片的检测功能
Aug 10 Python
Python循环语句之break与continue的用法
Oct 14 Python
Python的re模块正则表达式操作
May 25 Python
Python实现进程同步和通信的方法
Jan 02 Python
django中静态文件配置static的方法
May 20 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
基于python实现把图片转换成素描
Nov 13 Python
浅谈在JupyterNotebook下导入自己的模块的问题
Apr 16 Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 Python
使用pycharm运行flask应用程序的详细教程
Jun 07 Python
Python使用post及get方式提交数据的实例
Jan 24 #Python
在python中利用opencv简单做图片比对的方法
Jan 24 #Python
正确理解Python中if __name__ == '__main__'
Jan 24 #Python
对python读取CT医学图像的实例详解
Jan 24 #Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 #Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 #Python
python Selenium实现付费音乐批量下载的实现方法
Jan 24 #Python
You might like
php中实现精确设置session过期时间的方法
2014/07/17 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
jQuery.each使用详解
2015/07/07 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
JavaScript面向对象继承原理与实现方法分析
2018/08/09 Javascript
回调函数的意义以及python实现实例
2017/06/20 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
python使用gdal对shp读取,新建和更新的实例
2020/03/10 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
Python调用高德API实现批量地址转经纬度并写入表格的功能
2021/01/12 Python
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
简述安装Slackware Linux系统的过程
2012/01/12 面试题
高中生自我评价个人范文
2013/11/09 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
初婚未育未抱养证明
2014/01/12 职场文书
元旦晚会邀请函
2014/02/01 职场文书
家居装修公司创业计划书范文
2014/03/20 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
党校学习心得体会范文
2014/09/09 职场文书
大学生在校表现评语
2014/12/31 职场文书
物业工程部岗位职责
2015/02/11 职场文书
企业员工辞职信范文
2015/05/12 职场文书
小学生读书笔记范文
2015/06/30 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
在项目中使用redis做缓存的一些思路
2021/09/14 Redis