Python论坛  - 讨论区

标题:[python-chinese] struct.pack中的si问题

2005年10月15日 星期六 17:06

Gerald Lee leejd80 at gmail.com
Sat Oct 15 17:06:28 HKT 2005

参考代码:
>>> s = "\x31\x31\x31"
>>> s
'111'
>>> i = 1000
>>> i
1000
>>> import struct
>>> struct.pack("3si", s, i)
'111\x00\xe8\x03\x00\x00'
>>> pi = struct.pack("i", i)
>>> pi
'\xe8\x03\x00\x00'
>>> struct.pack("3s4s", s, pi)
'111\xe8\x03\x00\x00'
>>> ps = struct.pack("3s", s)
>>> ps
'111'
>>> pc = struct.pack("3c", s)
Traceback (most recent call last):
File "", line 1, in ?
struct.error: char format require string of length 1

从给出的代码中可以看到,如果直接对变量s和i直接进行"3si"pack的话,pack的结果会多一个"\x00"
我目前的做法是先对i进行pack,然后再进行pack一次
这样做的情况下,对于次数较少的pack还是可以接受的,但是对于较多数据的pack,冗余的代码比较多
想直接进行"si"的一次pack搞定这个问题,怎么处理?

--
My Blog >> http://leejd.cndev.org
My QQ >> 9847243
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20051015/aa161ad4/attachment.html

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号