💾 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

View Raw

More Information

⬅️ Previous capture (2022-01-08)

-=-=-=-=-=-=-

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.