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 相关文章推荐
go语言计算两个时间的时间差方法
Mar 13 Python
Python中用startswith()函数判断字符串开头的教程
Apr 07 Python
简述Python中的面向对象编程的概念
Apr 27 Python
python fabric实现远程部署
Jan 05 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
用Python写一个模拟qq聊天小程序的代码实例
Mar 06 Python
Python变量访问权限控制详解
Jun 29 Python
Python3 itchat实现微信定时发送群消息的实例代码
Jul 12 Python
Flask框架中request、请求钩子、上下文用法分析
Jul 23 Python
python解释器spython使用及原理解析
Aug 24 Python
Python包,__init__.py功能与用法分析
Jan 07 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 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生成带有雪花背景的验证码
2006/10/09 PHP
php addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
基于magic_quotes_gpc与magic_quotes_runtime的区别与使用介绍
2013/04/22 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
php二维码生成
2015/10/19 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
Swoole-1.7.22 版本已发布,修复PHP7相关问题
2015/12/31 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
Extjs学习笔记之六 面版
2010/01/08 Javascript
JavaScript中对象属性的添加和删除示例
2014/05/12 Javascript
推荐 21 款优秀的高性能 Node.js 开发框架
2014/08/18 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
自定义require函数让浏览器按需加载Js文件
2016/11/24 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例
2018/03/15 Python
python 不以科学计数法输出的方法
2018/07/16 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
python opencv肤色检测的实现示例
2020/12/21 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
非凡女性奢华谦虚风格:The Modist
2017/10/28 全球购物
大学班级计划书
2014/04/29 职场文书
2014年教师节演讲稿范文
2014/09/10 职场文书
雷峰塔导游词
2015/02/09 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android