2005年10月15日 星期六 17:06
参考代码:
>>> 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
Zeuux © 2025
京ICP备05028076号