位置: 编程技术 - 正文

Python中struct模块对字节流/二进制流的操作教程(python struct库)

编辑:rootadmin

推荐整理分享Python中struct模块对字节流/二进制流的操作教程(python struct库),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:struct python,python中struct.unpack,python struct模块,python struct模块,python中struct.unpack,python struct库,python struct库,python struct模块,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

最近使用Python解析IDX文件格式的MNIST数据集,需要对二进制文件进行读取操作,其中我使用的是struct模块。查了网上挺多教程都写的挺好的,不过对新手不是很友好,所以我重新整理了一些笔记以供快速上手。

注:教程中以下四个名词同义:二进制流、二进制数组、字节流、字节数组

快速上手

在struct模块中,将一个整型数字、浮点型数字或字符流(字符数组)转换为字节流(字节数组)时,需要使用格式化字符串fmt告诉struct模块被转换的对象是什么类型,比如整型数字是'i',浮点型数字是'f',一个ascii码字符是's'。

输出结果如下:

demo1输出结果

详解struct模块

主要函数

Python中struct模块对字节流/二进制流的操作教程(python struct库)

struct模块中最重要的三个函数是pack() , unpack() , calcsize()

struct中的格式化字符串

struct中支持的格式如下表:

Format C Type Python 字节数 x pad byte no value 1 c char string of length 1 1 b signed char integer 1 B unsigned char integer 1 &#; _Bool bool 1 h short integer 2 H unsigned short integer 2 i int integer 4 I unsigned int integer or lon 4 l long integer 4 L unsigned long long 4 q long long long 8 Q unsigned long long long 8 f float float 4 d double float 8 s char[] string 1 p char[] string 1 P void * long  

注1:q和Q只在机器支持位操作时有意思

注2:每个格式前可以有一个数字,表示个数

注3:s格式表示一定长度的字符串,4s表示长度为4的字符串,但是p表示的是pascal字符串

注4:P用来转换一个指针,其长度和机器字长相关

注5:最后一个可以用来表示指针类型的,占4个字节

为了同c中的结构体交换数据,还要考虑有的c或c++编译器使用了字节对齐,通常是以4个字节为单位的位系统,故而struct根据本地机器字节顺序转换.可以用格式中的第一个字符来改变对齐方式.定义如下:

Character Byte order Size and alignment @ native native 凑够4个字节 = native standard 按原字节数 < little-endian standard 按原字节数 > big-endian standard 按原字节数 ! network (= big-endian) standard 按原字节数

使用方法是放在fmt的第一个位置,就像'@5s6sif'

总结

标签: python struct库

本文链接地址:https://www.jiuchutong.com/biancheng/381342.html 转载请保留说明!

上一篇:python使用xlrd与xlwt对excel的读写和格式设定(python3 xlrd)

下一篇:python学习之面向对象【入门初级篇】(python中的面向对象)

  • 小型微利企业所得税计算公式2023
  • 小规模应税行为扣除额如何填
  • 房产证,契税
  • 计提个税会计分录怎么做小规模
  • 折旧费属于什么科目
  • 收到以前年度的政府补助会计分录
  • 企业防伪税控维护方案
  • 事业单位无形资产管理制度
  • 企业内部商品转移怎么核算
  • 菜场摊位租赁合同
  • 小规模增值税做那个费用科目
  • 银行存款一直没动会怎样
  • 公司领导培训费怎么入账
  • 期末留抵税额大于销项税额本月还需要计提吗
  • 如何才能成为一个好老师
  • 理财产品增值税纳税人
  • 280服务费抵税分录
  • 小微企业销售已按固定资产入账的办公家具也享受免税政策吗?
  • 所得税费用按月还是按年算
  • 新开公司第一个月个税零申报,但是有发工资
  • 实收资本的会计处理
  • 所得税季度申报营业收入填什么
  • 变动成本主要包括
  • 无形资产减值损失后能不能转回
  • 生产的废料怎么做账
  • 个人出租住房需要交城镇土地使用税吗
  • win7为什么不能安装软件
  • 财产租赁所得个人所得税怎么申报
  • 工商年报单位缴费基数怎么算出来
  • 小企业会计准则下融资租入固定资产的核算
  • 增加间接费用科目的方法
  • 教你如何正确选择轮胎
  • 员工出差火车票可以抵扣进项吗
  • 显卡的散热
  • 盘亏应交税费
  • 什么的利息收入可免纳个人所得税
  • 税金及附加的含义
  • 公司费用报销包括哪些
  • 2021年中小企业税收减免政策
  • 生态位模型原理
  • pdf优化器在哪里
  • php自加
  • dos命令怎么转到d盘
  • 外贸出口退税操作流程
  • 代收代付业务
  • 真发票假业务会坐牢吗
  • 织梦cms要钱吗
  • 长期待摊费用科目性质
  • 公司不按股权比例分红是否合法
  • 企业应缴纳税款
  • sqlserver2008无法连接到local用户登录失败
  • 免税农产品范围目录的文件
  • 冲回多提的坏账准备会计分录
  • 外资研发中心可以上市吗
  • 汽车销售公司赠车合法吗
  • 土地前期开发费用属于开发成本吗
  • 政府专项补贴资金应列入什么科目
  • 固定资产房屋拆除后如何做帐务处理
  • 为什么预付账款是资产
  • 跨年度利息收入如何调整
  • 职工体检可以从工会经费支出
  • 五证合一的办理流程是什么
  • 对会计人员继续教育的目的包括了保障
  • win10预览版0x80072ee2
  • git不小心改了master
  • 远程控制安全
  • win7系统打开服务
  • win7打印机图标显示感叹号
  • win7系统英雄联盟黑屏
  • win7浏览器怎么升级到最新版
  • html5画布五角星
  • android英语
  • 总体把握是什么意思
  • jquery添加文字
  • 登陆界面android
  • 江苏国税增值税退税怎么操作
  • 供电代收电费
  • 个人所得税完税证明
  • 兼营增值税应税项目和免税项目
  • 税收与税务的区别是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设