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装饰器使用示例及实际应用例子
Mar 06 Python
浅谈Python 中整型对象的存储问题
May 16 Python
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
超简单的Python HTTP服务
Jul 22 Python
python同步windows和linux文件
Aug 29 Python
Django框架创建项目的方法入门教程
Nov 04 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 Python
Python输出指定字符串的方法
Feb 06 Python
解决pycharm不能自动补全第三方库的函数和属性问题
Mar 12 Python
Python如何使用bokeh包和geojson数据绘制地图
Mar 21 Python
Python爬虫爬取百度搜索内容代码实例
Jun 05 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 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
一个好用的分页函数
2006/11/16 PHP
php !function_exists("T7FC56270E7A70FA81A5935B72EACBE29"))代码解密
2011/01/07 PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
精美漂亮的php分页类代码
2013/04/02 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
TP5框架实现上传多张图片的方法分析
2020/03/29 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
jquery 学习之一 对象访问
2010/11/23 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
jQuery统计指定子元素数量的方法
2015/03/17 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
vue-cli3单页构建大型项目方案
2020/04/07 Javascript
antd form表单数据回显操作
2020/11/02 Javascript
JavaScript 实现继承的几种方式
2021/02/19 Javascript
python 创建弹出式菜单的实现代码
2017/07/11 Python
numpy中索引和切片详解
2017/12/15 Python
从0开始的Python学习016异常
2019/04/08 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
2020/09/17 Python
Pytorch中.new()的作用详解
2020/02/18 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
2020/04/26 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
HTML5 移动页面自适应手机屏幕四类方法总结
2017/08/17 HTML / CSS
Tory Burch美国官方网站:美国时尚生活品牌
2016/08/01 全球购物
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
香港零食网购:上仓胃子
2020/06/08 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
linux系统都有哪些运行级别
2016/03/26 面试题
中国入世承诺
2014/04/01 职场文书
2015年班级元旦晚会活动总结
2014/11/28 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书