struct.unpack() on a stream
gagsl-py2 at yahoo.com.ar
Fri Feb 27 07:58:51 EST 2009
En Fri, 27 Feb 2009 10:10:39 -0200, MRAB <google at mrabarnett.plus.com>
> Gabriel Genellina wrote:
>> En Fri, 27 Feb 2009 09:29:16 -0200, Ulrich Eckhardt
>> <eckhardt at satorlaser.com> escribió:
>>> I have a socket from which I would like to parse some data, how would
>>> I do
>>> that? Of course, I can manually read data from the socket until
>>> stops complaining about a lack of data, but that sounds rather
>>> Any better suggestions?
>> Read until you get the required bytes; use the size attribute.
> The struct module has a function called "calcsize", eg:
> >>> import struct
> >>> struct.calcsize("<H")
> That will tell you how many bytes to read.
The struct module defines also a Struct class; instead of using the module
functions, it's more efficient to create a Struct instance and call its
methods when one is going to use the same format more than once:
py> s = struct.Struct("<H")
That's the size attribute I was talking about - too tersely perhaps.
More information about the Python-list