struct – pack and unpack primitive data types — MicroPython latest documentation (original) (raw)

This is the documentation for the latest development branch of MicroPython and may refer to features that are not available in released versions.

If you are looking for the documentation for a specific release, use the drop-down menu on the left and select the desired version.

This module implements a subset of the corresponding CPython module, as described below. For more information, refer to the original CPython documentation: struct.

The following byte orders are supported:

Character Byte order Size Alignment
@ native native native
< little-endian standard none
> big-endian standard none
! network (= big-endian) standard none

The following data types are supported:

Format C Type Python type Standard size
b signed char integer 1
B unsigned char integer 1
h short integer 2
H unsigned short integer 2
i int integer (1) 4
I unsigned int integer (1) 4
l long integer (1) 4
L unsigned long integer (1) 4
q long long integer (1) 8
Q unsigned long long integer (1) 8
e n/a (half-float) float (2) 2
f float float (2) 4
d double float (2) 8
s char[] bytes
P void * integer
  1. Requires long support when used with values larger than 30 bits.
  2. Requires floating point support.

Difference to CPython

Whitespace is not supported in format strings.

Functions

struct.calcsize(fmt)

Return the number of bytes needed to store the given fmt.

struct.pack(fmt, v1, v2, ...)

Pack the values v1, v2, … according to the format string fmt. The return value is a bytes object encoding the values.

struct.pack_into(fmt, buffer, offset, v1, v2, ...)

Pack the values v1, v2, … according to the format string _fmt_into a buffer starting at offset. offset may be negative to count from the end of buffer.

struct.unpack(fmt, data)

Unpack from the data according to the format string fmt. The return value is a tuple of the unpacked values.

struct.unpack_from(fmt, data, offset=0, /)

Unpack from the data starting at offset according to the format string_fmt_. offset may be negative to count from the end of data. The return value is a tuple of the unpacked values.