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中使用PDB库调试程序
Apr 05 Python
全面了解python字符串和字典
Jul 07 Python
Python 私有函数的实例详解
Sep 11 Python
pytorch cnn 识别手写的字实现自建图片数据
May 20 Python
python实现简单多人聊天室
Dec 11 Python
ipython和python区别详解
Jun 26 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
Kears+Opencv实现简单人脸识别
Aug 28 Python
学python安装的软件总结
Oct 12 Python
Python tkinter 下拉日历控件代码
Mar 04 Python
Python函数调用追踪实现代码
Nov 27 Python
python Django框架快速入门教程(后台管理)
Jul 21 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调用c接口无错版介绍
2014/03/11 PHP
php获取用户浏览器版本的方法
2015/01/03 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
JS实现可调整倒计时间代码分享
2015/08/18 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
js识别uc浏览器的代码
2015/11/06 Javascript
完美解决JS文件页面加载时的阻塞问题
2016/12/18 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
使用Node.js实现ORM的一种思路详解(图文)
2017/10/24 Javascript
基于JS实现html中placeholder属性提示文字效果示例
2018/04/19 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
基于node简单实现RSA加解密的方法步骤
2019/03/21 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
json跨域调用python的方法详解
2017/01/11 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
Python pip install如何修改默认下载路径
2020/04/29 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
Famous Footwear加拿大:美国多品牌运动休闲鞋店
2018/12/05 全球购物
澳大利亚设计的优质鞋类和适合澳大利亚生活方式的服装:Rivers
2019/04/23 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
专科毕业生求职简历的自我评价
2013/10/12 职场文书
求职简历自荐信范文
2013/10/21 职场文书
医校毕业生自我鉴定
2014/01/25 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
规划编制实施方案
2014/03/15 职场文书
函授生自我鉴定
2014/03/25 职场文书
竞选大队干部演讲稿
2014/09/11 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
JS前端使用canvas实现物体的点选示例
2022/08/05 Javascript