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开发环境PyScripter中文乱码问题解决方案
Sep 11 Python
利用python写个下载teahour音频的小脚本
May 08 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
Oct 09 Python
在Python中实现替换字符串中的子串的示例
Oct 31 Python
python读取文件名并改名字的实例
Jan 07 Python
Python实现的IP端口扫描工具类示例
Feb 15 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 Python
python异步Web框架sanic的实现
Apr 27 Python
Python数据可视化常用4大绘图库原理详解
Oct 23 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
SpringBoot首页设置解析(推荐)
Feb 11 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 获取完整url地址
2008/12/20 PHP
Yii2框架制作RESTful风格的API快速入门教程
2016/11/08 PHP
Yii 2.0自带的验证码使用经验分享
2017/06/19 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
详解Node.js异步处理的各种写法
2019/06/09 Javascript
js实现经典贪吃蛇小游戏
2020/03/19 Javascript
详解React 条件渲染
2020/07/08 Javascript
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
python实现发送邮件功能
2017/07/22 Python
python ansible服务及剧本编写
2017/12/29 Python
python批量设置多个Excel文件页眉页脚的脚本
2018/03/14 Python
利用Python如何将数据写到CSV文件中
2018/06/05 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
解决Python安装时报缺少DLL问题【两种解决方法】
2019/07/15 Python
python logging.info在终端没输出的解决
2020/05/12 Python
python如何调用字典的key
2020/05/25 Python
英国的知名精品百货公司:House of Fraser(福来德)
2016/08/14 全球购物
生物化工工艺专业应届生求职信
2013/10/08 职场文书
北大自主招生自荐信
2013/10/19 职场文书
国际贸易专业推荐信
2013/11/15 职场文书
早读迟到检讨书
2014/01/24 职场文书
初中教师业务学习材料
2014/05/12 职场文书
银行业务授权委托书
2014/10/10 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
先进党组织事迹材料
2014/12/26 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL