位置: 编程技术 - 正文

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中的面向对象)

  • 房产税与土地使用税如何申报
  • 财务软件费用可以抵税吗
  • 税收工资什么意思
  • 公司刚成立没有收入但是有支出怎么记账
  • 资产负债表中的固定资产是原值还是净值
  • 利息税减少
  • 计提利息收入分录怎么写
  • 其他收益和营业收益
  • 结转本月发生的费用
  • 市场营销策划开题报告
  • 经营性应收项目和经营性应付项目
  • 融资性售后回租承租方出售资产为什么不缴纳增值税
  • 房地产企业固定资产的折旧
  • 将外购的货物赠送给儿童福利院,进项税
  • 支付利息的诉讼请求
  • 防洪基金减免的会计分录怎么写?
  • 期初数录错了怎么改
  • 本月征期2021
  • 免税农产品转出进项税税率
  • 税务部门如何核定税额
  • 广告位的费用
  • 园林设计属于什么
  • 工程公司安装中央空调能按混合销售计算增值税么?
  • 公司无偿使用个人车辆,个人需要缴纳税款吗
  • 沥青混凝土增值税风险
  • 房地产土地增值税加计扣除20%
  • 境外投资企业如何交税
  • 增值税发票跨年了还能用吗
  • 季度利润
  • 跨年度暂估成本入账冲回如何会计分录
  • 可转换债券具有债权和股权双重特征
  • 季度成本分析报告
  • ue4 像素流并发
  • windows 11预览版
  • 将银行借款存入银行会引起企业资产总额的变化吗
  • 权限控制的原则是什么
  • 会计学中的折旧是什么意思
  • 以非现金资产清偿债务的,债权人应当
  • 全资子公司取得注册证可以免临床
  • 一只棕色
  • 新准则有哪些
  • 销售自己使用过的固定资产
  • 费用报销单怎样粘贴
  • gpt-3的功能
  • js遇到的问题
  • 应交税费的进项税和销项税
  • 车间主要有哪些事故风险
  • php如何解析json串内的数组
  • 所有者权益总计怎么算沙盘
  • 收到借款利息收入的会计分录怎么做账
  • phpcms视频教程
  • 其他应付款贷方正数表示什么意思
  • 企业残保金该什么时间交
  • 发票金额少于付款金额怎么做账
  • 房东减免部分房租
  • 公司奖励员工制度
  • 制造费用转入生产成本摘要怎么写
  • 分公司交总公司管理费怎么做账
  • 银行回单nxt
  • 租赁费计提印花税税率
  • 电脑折旧多少钱
  • 什么是暂估入账金额
  • 根据企业会计准则第4号固定资产,企业可选用的折旧方法
  • 电脑windows怎么查
  • 如何卸载独显
  • windows2008r2无线网卡不可用
  • linux命令ethtool
  • windows8如何安装
  • win8怎么添加打印机到电脑上
  • centos32
  • win8系统怎么到桌面
  • win10显示win8
  • win7怎么修改开机启动
  • 输出语句的执行过程
  • python cx_Oracle模块的安装和使用详细介绍
  • python设计gui
  • 甘肃增值税发票查验平台官网
  • 厦门市税务局电话
  • 消费税的税收筹划案例分析
  • 服饰类关税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设