栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将二进制文件读入结构

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将二进制文件读入结构

使用

struct
模块;
您需要以该库记录的字符串格式定义类型:

struct.unpack('=HHf255s', bytes)

上面的示例期望本机字节顺序,两个无符号短裤,一个浮点数和一个255个字符的字符串。

要遍历一个已经完全读取的

bytes
字符串,我要使用
itertools
;
我在这里有一个方便的石斑鱼食谱:

from itertools import izip_longest, imapfrom struct import unpack, calcsizefmt_s = '=5i'fmt_spec = '=256i'size_s = calcsize(fmt_s)size = size_s + calcsize(fmt_spec)def chunked(iterable, n, fillvalue=''):    args = [iter(iterable)] * n    return imap(''.join, izip_longest(*args, fillvalue=fillvalue))data = [unpack(fmt_s, section[:size_s]) + (unpack(fmt_spec, section[size_s:]),)    for section in chunked(bytes, size)]

这将产生元组而不是列表,但是如果必须进行调整,就很容易进行调整:

data = [list(unpack(fmt_s, section[:size_s])) + [list(unpack(fmt_spec, section[size_s:]))]    for section in chunked(bytes, size)]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/645446.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号