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构建自定义回调函数详解
Jun 20 Python
Python数据结构之双向链表的定义与使用方法示例
Jan 16 Python
python3.x上post发送json数据
Mar 04 Python
PyQt5每天必学之进度条效果
Apr 19 Python
解决python报错MemoryError的问题
Jun 26 Python
如何使用Python标准库进行性能测试
Jun 25 Python
基于 Django 的手机管理系统实现过程详解
Aug 16 Python
python获取引用对象的个数方式
Dec 20 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 Python
python em算法的实现
Oct 03 Python
Python抖音快手代码舞(字符舞)的实现方法
Feb 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
Codeigniter框架的更新事务(transaction)BUG及解决方法
2014/07/25 PHP
Laravel 5框架学习之数据库迁移(Migrations)
2015/04/08 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
2020/04/04 PHP
常用js脚本
2006/12/03 Javascript
javascript 写类方式之一
2009/07/05 Javascript
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
基于jquery的无缝循环新闻列表插件
2011/03/07 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
JS中实现简单Formatter函数示例代码
2014/08/19 Javascript
JavaScript实现的一个倒计时的类
2015/03/12 Javascript
js实现文字闪烁特效的方法
2015/12/17 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
Iscrool下拉刷新功能实现方法(推荐)
2017/06/26 Javascript
微信小程序多列选择器range-key使用详解
2020/03/30 Javascript
js实现搜索栏效果
2018/11/16 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
Vue中computed及watch区别实例解析
2020/08/01 Javascript
Python 文件操作技巧(File operation) 实例代码分析
2008/08/11 Python
Python的lambda匿名函数的简单介绍
2013/04/25 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
python2爬取百度贴吧指定关键字和图片代码实例
2019/08/14 Python
介绍一下如何利用路径遍历进行攻击及如何防范
2014/01/19 面试题
实习自荐信
2013/10/13 职场文书
简单的辞职信范文
2014/01/18 职场文书
领导干部培训感言
2014/01/23 职场文书
师德建设实施方案
2014/03/21 职场文书
文体活动实施方案
2014/03/27 职场文书
个人授权委托书范本
2014/09/14 职场文书
品质保证书格式
2015/02/28 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python
python基础入门之字典和集合
2021/06/13 Python
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python