python开发---python处理binary⽂件
python处理binary⽂件的基本流程如下:
TrainLabelFileName = r'/home/yml/桌⾯/mnist/train-labels.idx1-ubyte'
TLbinfile = open(TrainLabelFileName,'rb')
TLbuf = ad()
对与buffer做⼀些处理
TLbinfile.close
⽽对应binary buffer的处理,可以考虑使⽤python提供的struct模块。struct是python的库,可以⽤来处理binary data,这些data 可能来⾃⽂件,⽹络连接或是其他的地⽅,也可以处理原本使⽤C语⾔结构体描述的复杂信息。
struct提供多个处理函数:
Index函数描述
1struct.pack(format, v1, v2, ...)将v1,v2...按照format格式打包并返回
将v1,v2....按照format格式打包,并写⼊到buffer的offset地⽅
2struct.pack_into(format, buffer, offset, v1, v2, ...)python怎么读取桌面上的文件
3struct.unpack(format, buffer)按照format格式解析buffer,并返回,返回值是⼀个tuple类型,可以通过calcsize()来计算长度
按照format格式解析buffer的制定偏移,,返回值是⼀个tuple类型,可以通过calcsize()来计算长度
4struct.unpack_from(format, buffer, offset=0)
5struct.iter_unpack(format,buffer)
6struct.calcsize(format)计算format格式所需的字节长度
format格式
struct的format格式包括两个部分:编码标识和格式标识
编码标识包括字节序,⼤⼩和对齐⽅式
注意:
native byte order表⽰跟随系统的配置,python可以使⽤sys.byteorder来获取到⼤⼩端格式;
native size and alignment表⽰根据C编译器的sizeof的操作
standard size依赖于格式字符中指定的情况
可以没有编码标识,默认为@
格式标识:
注意:
'IIII' = '4I' = '@4I'
具体使⽤实例请参考
参考⽂献
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论