Back to module index
Go to module by name
_struct
Functions to convert between Python values and C structs.
Python bytes objects are used to hold the data representing the C struct
and also as format strings (explained below) to describe the layout of data
in the C struct.
The optional first format char indicates byte order, size and alignment:
@: native order, size & alignment (default)
=: native order, std. size & alignment
<: little-endian, std. size & alignment
>: big-endian, std. size & alignment
!: same as >
The remaining chars indicate types of args and must match exactly;
these can be preceded by a decimal repeat count:
x: pad byte (no data); c:char; b:signed byte; B:unsigned byte;
?: _Bool (requires C99; if not available, char is used instead)
h:short; H:unsigned short; i:int; I:unsigned int;
l:long; L:unsigned long; f:float; d:double; e:half-float.
Special cases (preceding decimal count indicates length):
s:string (array of char); p: pascal string (with count byte).
Special cases (only available in native format):
n:ssize_t; N:size_t;
P:an integer type that is wide enough to hold a pointer.
Special case (not in native mode unless 'long long' in platform C):
q:long long; Q:unsigned long long
Whitespace between formats is ignored.
The variable struct.error is an exception raised on errors.
Classes
Struct
Struct(fmt) --> compiled struct object
iter_unpack(self, buffer, /)
Return an iterator yielding tuples.
Tuples are unpacked from the given bytes source, like a repeated
invocation of unpack_from().
Requires that the bytes length be a multiple of the struct size.
pack(...)
S.pack(v1, v2, ...) -> bytes
Return a bytes object containing values v1, v2, ... packed according
to the format string S.format. See help(struct) for more on format
strings.
pack_into(...)
S.pack_into(buffer, offset, v1, v2, ...)
Pack the values v1, v2, ... according to the format string S.format
and write the packed bytes into the writable buffer buf starting at
offset. Note that the offset is a required argument. See
help(struct) for more on format strings.
unpack(self, buffer, /)
Return a tuple containing unpacked values.
Unpack according to the format string Struct.format. The buffer's size
in bytes must be Struct.size.
See help(struct) for more on format strings.
unpack_from(self, /, buffer, offset=0)
Return a tuple containing unpacked values.
Values are unpacked according to the format string Struct.format.
The buffer's size in bytes, starting at position offset, must be
at least Struct.size.
See help(struct) for more on format strings.
format = <attribute 'format' of '_struct.Struct' objects>
struct format string
size = <attribute 'size' of '_struct.Struct' objects>
struct size in bytes
error
with_traceback(...)
Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.
args = <attribute 'args' of 'BaseException' objects>
Functions
calcsize
calcsize(format, /)
Return size in bytes of the struct described by the format string.
iter_unpack
iter_unpack(format, buffer, /)
Return an iterator yielding tuples unpacked from the given bytes.
The bytes are unpacked according to the format string, like
a repeated invocation of unpack_from().
Requires that the bytes length be a multiple of the format struct size.
pack
pack(...)
pack(format, v1, v2, ...) -> bytes
Return a bytes object containing the values v1, v2, ... packed according
to the format string. See help(struct) for more on format strings.
pack_into
pack_into(...)
pack_into(format, buffer, offset, v1, v2, ...)
Pack the values v1, v2, ... according to the format string and write
the packed bytes into the writable buffer buf starting at offset. Note
that the offset is a required argument. See help(struct) for more
on format strings.
unpack
unpack(format, buffer, /)
Return a tuple containing values unpacked according to the format string.
The buffer's size in bytes must be calcsize(format).
See help(struct) for more on format strings.
unpack_from
unpack_from(format, /, buffer, offset=0)
Return a tuple containing values unpacked according to the format string.
The buffer's size, minus offset, must be at least calcsize(format).
See help(struct) for more on format strings.