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自动翻译实现方法
May 28 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
Sep 21 Python
python一键升级所有pip package的方法
Jan 16 Python
django js实现部分页面刷新的示例代码
May 28 Python
Django 登陆验证码和中间件的实现
Aug 17 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
python-docx文件定位读取过程(尝试替换)
Feb 13 Python
python实现低通滤波器代码
Feb 26 Python
在python中利用dict转json按输入顺序输出内容方式
Feb 27 Python
Pyinstaller加密打包应用的示例代码
Jun 11 Python
sklearn的predict_proba使用说明
Jun 28 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
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
生成php程序的php代码
2008/04/07 PHP
php调用C代码的实现方法
2014/03/11 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
邮箱下拉自动填充选择示例代码附图
2014/04/03 Javascript
NodeJS学习笔记之MongoDB模块
2015/01/13 NodeJs
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
2016/11/01 Javascript
bootstrap 模态框(modal)实现水平垂直居中显示
2017/01/23 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
jQuery zTree树插件动态加载实例代码
2017/05/11 jQuery
js 发布订阅模式的实例讲解
2017/09/10 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
node中使用log4js4.x版本记录日志的方法
2019/08/20 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
python使用adbapi实现MySQL数据库的异步存储
2019/03/19 Python
解决pyinstaller打包发布后的exe文件打开控制台闪退的问题
2019/06/21 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
python hashlib加密实现代码
2019/10/17 Python
Kenneth Cole官网:纽约时尚优雅品牌
2016/11/14 全球购物
哈利波特商店:Harry Potter Shop
2018/11/30 全球购物
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
护士求职简历自我评价
2015/03/10 职场文书
儿子满月酒致辞
2015/07/29 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
python通过opencv调用摄像头操作实例分析
2021/06/07 Python