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中的一些陷阱与技巧小结
Jul 10 Python
深入讲解Java编程中类的生命周期
Feb 05 Python
Python的Tornado框架实现异步非阻塞访问数据库的示例
Jun 30 Python
对numpy的array和python中自带的list之间相互转化详解
Apr 13 Python
Python装饰器用法实例总结
May 26 Python
python批量修改图片大小的方法
Jul 24 Python
python抖音表白程序源代码
Apr 07 Python
Tensorflow不支持AVX2指令集的解决方法
Feb 03 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
利用python下载scihub成文献为PDF操作
Jul 09 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 Python
python中的plt.cm.Paired用法说明
May 31 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
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
PHP将字符分解为多个字符串的方法
2014/11/22 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
PHP正则表达式处理函数(PCRE 函数)实例小结
2019/05/09 PHP
javascript拓展DOM操作 prependChild insertAfert
2010/11/17 Javascript
Jquery中给animation加更多的运作效果实例
2013/09/05 Javascript
浅谈JavaScript的push(),pop(),concat()方法
2016/06/03 Javascript
JS实现屏蔽网页右键复制及ctrl+c复制的方法【2种方法】
2016/09/04 Javascript
jQuery中 bind的用法简单介绍
2017/02/13 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
微信小程序手机号码验证功能的实例代码
2018/08/28 Javascript
详解如何理解vue的key属性
2019/04/14 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
SQLite3中文编码 Python的实现
2017/01/11 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
Python数据结构之顺序表的实现代码示例
2017/11/15 Python
python处理csv数据动态显示曲线实例代码
2018/01/23 Python
python使用openpyxl库修改excel表格数据方法
2018/05/03 Python
Python读取mat文件,并保存为pickle格式的方法
2018/10/23 Python
python同时遍历数组的索引和值的实例
2018/11/15 Python
浅谈Python批处理文件夹中的txt文件
2019/03/11 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
wxPython电子表格功能wx.grid实例教程
2019/11/19 Python
Python turtle库的画笔控制说明
2020/06/28 Python
Python基于pyjnius库实现访问java类
2020/07/31 Python
Python爬虫爬取微博热搜保存为 Markdown 文件的源码
2021/02/22 Python
详解利用css3的var()实现运行时改变scss的变量值
2021/03/02 HTML / CSS
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
成教毕业生自我鉴定
2013/10/23 职场文书
《小小竹排画中游》教学反思
2014/02/26 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
Java并发编程之Executor接口的使用
2021/06/21 Java/Android
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS