struct打包模块加强版!支持任意长度字符串解包

用过python的struct模块的人都知道,struct模块的打包并不方便,尤其是处理字符串上。
字符串的长度必须打包的时候计算好,比如‘hello’ 那么打包格式 fmt就必须是‘5s’,因此fmt要么固定一个最大字符串长度 ‘180s’,要么动态的去计算长度 ‘%ds’%len(text)

  1. 如果采用固定字符串长度,那么解包的时候你获得的字符串将会是这样 ‘hello00x00x00x00x00x00x....’,因为python的字符串不是像C\C++那样以\0结尾来截取的。
  2. 如果字符串长度是在打包的时候才确定的,那么解包的时候很被动,解包的时候怎么知道fmt里s到底有多少个?

于是乎我就写了下面这个加强版struct模块,不过由于自己的编程水平有限,bug什么的,这个模块可能并不能实际使用,拿出来分享一下也好,指点指点指不定就有思路改良出更好的实现。


import struct


"""
author:kaluluosi
date:2015-11-02


extension of struct lib
surport 
string argument aut
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值