💾 Archived View for tris.fyi › pydoc › struct captured on 2023-04-26 at 13:32:18. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-01-08)
-=-=-=-=-=-=-
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.
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
with_traceback(...) Exception.with_traceback(tb) -- set self.__traceback__ to tb and return self.
args = <attribute 'args' of 'BaseException' objects>
calcsize(format, /) Return size in bytes of the struct described by the format string.
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(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(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(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(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.