struct
– Manipulation of c-style data
This module implements a subset of the corresponding CPython module,
as described below. For more information, refer to the original
CPython documentation: cpython:struct
.
Supported size/byte order prefixes: @, <, >, !.
Supported format codes: b, B, x, h, H, i, I, l, L, q, Q,
s, P, f, d (the latter 2 depending on the floating-point support).
Available on these boards
- 01Space 0.42 OLED ESP32C3
- 0xCB Helios
- 42. Keebs Frood
- 8086 Commander
- 8086 USB Interposer
- @sarfata shIRtty
- AITHinker ESP32-C3S_Kit
- AITHinker ESP32-C3S_Kit_2M
- ARAMCON Badge 2019
- ARAMCON2 Badge
- ATMegaZero ESP32-S2
- Adafruit BLM Badge
- Adafruit CLUE nRF52840 Express
- Adafruit Camera
- Adafruit Circuit Playground Bluefruit
- Adafruit Circuit Playground Express 4-H
- Adafruit CircuitPlayground Express
- Adafruit CircuitPlayground Express with Crickit libraries
- Adafruit CircuitPlayground Express with displayio
- Adafruit EdgeBadge
- Adafruit Feather Bluefruit Sense
- Adafruit Feather ESP32 V2
- Adafruit Feather ESP32-C6 4MB Flash No PSRAM
- Adafruit Feather ESP32-S2 Reverse TFT
- Adafruit Feather ESP32-S2 TFT
- Adafruit Feather ESP32-S3 Reverse TFT
- Adafruit Feather ESP32-S3 TFT
- Adafruit Feather ESP32S2
- Adafruit Feather ESP32S3 4MB Flash 2MB PSRAM
- Adafruit Feather ESP32S3 No PSRAM
- Adafruit Feather HUZZAH32
- Adafruit Feather M0 Adalogger
- Adafruit Feather M0 Basic
- Adafruit Feather M0 Express
- Adafruit Feather M0 Express with Crickit libraries
- Adafruit Feather M0 RFM69
- Adafruit Feather M0 RFM9x
- Adafruit Feather M4 CAN
- Adafruit Feather M4 Express
- Adafruit Feather MIMXRT1011
- Adafruit Feather RP2040
- Adafruit Feather RP2040 Adalogger
- Adafruit Feather RP2040 CAN
- Adafruit Feather RP2040 DVI
- Adafruit Feather RP2040 Prop-Maker
- Adafruit Feather RP2040 RFM
- Adafruit Feather RP2040 Scorpio
- Adafruit Feather RP2040 ThinkInk
- Adafruit Feather RP2040 USB Host
- Adafruit Feather RP2350
- Adafruit Feather STM32F405 Express
- Adafruit Feather nRF52840 Express
- Adafruit Floppsy RP2040
- Adafruit FunHouse
- Adafruit Gemma M0
- Adafruit Gemma M0 PyCon 2018
- Adafruit Grand Central M4 Express
- Adafruit HUZZAH32 Breakout
- Adafruit Hallowing M4 Express
- Adafruit ItsyBitsy ESP32
- Adafruit ItsyBitsy M0 Express
- Adafruit ItsyBitsy M4 Express
- Adafruit ItsyBitsy RP2040
- Adafruit ItsyBitsy nRF52840 Express
- Adafruit KB2040
- Adafruit LED Glasses Driver nRF52840
- Adafruit Macropad RP2040
- Adafruit MagTag
- Adafruit Matrix Portal M4
- Adafruit MatrixPortal S3
- Adafruit Metro ESP32S2
- Adafruit Metro ESP32S3
- Adafruit Metro M0 Express
- Adafruit Metro M4 Airlift Lite
- Adafruit Metro M4 Express
- Adafruit Metro RP2040
- Adafruit Metro RP2350
- Adafruit Metro nRF52840 Express
- Adafruit Monster M4SK
- Adafruit NeoKey Trinkey M0
- Adafruit NeoPixel Trinkey M0
- Adafruit Pixel Trinkey M0
- Adafruit ProxLight Trinkey M0
- Adafruit PyGamer
- Adafruit PyPortal
- Adafruit PyPortal Pynt
- Adafruit PyPortal Titano
- Adafruit PyRuler
- Adafruit Pybadge
- Adafruit QT Py ESP32 PICO
- Adafruit QT Py ESP32-S3 4MB Flash 2MB PSRAM
- Adafruit QT Py ESP32-S3 no psram
- Adafruit QT Py ESP32C3
- Adafruit QT Py ESP32S2
- Adafruit QT Py M0
- Adafruit QT Py M0 Haxpress
- Adafruit QT Py RP2040
- Adafruit QT2040 Trinkey
- Adafruit Rotary Trinkey M0
- Adafruit SHT4x Trinkey M0
- Adafruit Slide Trinkey M0
- Adafruit TRRS Trinkey M0
- Adafruit Trellis M4 Express
- Adafruit Trinket M0
- Adafruit Vindie S2
- Adafruit-Qualia-S3-RGB666
- Ai Thinker ESP32-CAM
- AloriumTech Evo M51
- Archi RP2040
- Arduino MKR Zero
- Arduino MKR1300
- Arduino Nano 33 BLE
- Arduino Nano 33 BLE Rev2
- Arduino Nano 33 IoT
- Arduino Nano ESP32
- Arduino Nano RP2040 Connect
- Arduino Zero
- Artisense Reference Design RD00
- AtelierDuMaker nRF52840 Breakout
- AutosportLabs-ESP32-CAN-X2
- BARDUINO 4.0.2
- BBQ20KBD
- BDMICRO VINA-D51
- BLE-SS dev board Multi Sensor
- BLING!
- BLOK
- BPI-Bit-S2
- BPI-Leaf-S3
- BPI-PicoW-S3
- BastBLE
- BastWiFi
- Bee-Data-Logger
- Bee-Motion-S3
- Bee-S3
- BlizzardS3
- BlueMicro833
- BlueMicro840
- Bradán Lane STUDIO Explorer Badge
- COSMO-Pico
- CP Sapling M0
- CP Sapling M0 w/ SPI Flash
- CP32-M4
- CRCibernetica IdeaBoard
- Capable Robot Programmable USB Hub
- Cedar Grove StringCar M0 Express
- Challenger NB RP2040 WiFi
- Challenger RP2040 LTE
- Challenger RP2040 LoRa
- Challenger RP2040 SD/RTC
- Challenger RP2040 SubGHz
- Challenger RP2040 WiFi
- Challenger RP2040 WiFi/BLE
- Challenger+ RP2350 BConnect
- Challenger+ RP2350 WiFi6/BLE5
- Circuit Playground Express Digi-Key PyCon 2019
- CircuitART Zero S3
- CircuitBrains Basic
- CircuitBrains Deluxe
- ColumbiaDSL-Sensor-Board-V1
- CrumpS2
- Cytron EDU PICO W
- Cytron IRIV IO Controller
- Cytron MOTION 2350 Pro
- Cytron Maker Feather AIoT S3
- Cytron Maker Nano RP2040
- Cytron Maker Pi RP2040
- Cytron Maker Uno RP2040
- DFRobot Beetle ESP32-C3
- DFRobot FireBeetle 2 ESP32-S3
- Datanoise PicoADK
- Datanoise PicoADK V2
- Deneyap Kart
- Deneyap Kart 1A
- Deneyap Kart 1A v2
- Deneyap Kart G
- Deneyap Mini
- Deneyap Mini v2
- Diodes Delight Piunora
- DynOSSAT-EDU-EPS
- DynOSSAT-EDU-OBC
- DynaLoRa_USB
- E-Fidget
- ELECFREAKS PICO:ED
- ES3ink
- ESP 12k NodeMCU
- ESP32 Devkit V1
- ESP32-C3-DevKitM-1
- ESP32-C6-DevKitC-1-N8
- ESP32-C6-DevKitM-1
- ESP32-H2-DevKitM-1
- ESP32-P4-Function-EV
- ESP32-S2-DevKitC-1-N4
- ESP32-S2-DevKitC-1-N4R2
- ESP32-S2-DevKitC-1-N8R2
- ESP32-S3-Box-2.5
- ESP32-S3-Box-Lite
- ESP32-S3-DevKitC-1-N16
- ESP32-S3-DevKitC-1-N32R8
- ESP32-S3-DevKitC-1-N8
- ESP32-S3-DevKitC-1-N8R2
- ESP32-S3-DevKitC-1-N8R8
- ESP32-S3-DevKitC-1-N8R8-with-HACKTABLET
- ESP32-S3-DevKitM-1-N8
- ESP32-S3-EYE
- ESP32-S3-USB-OTG-N8
- ESP8684-DevKitC-02-N4
- Electrolama minik
- Electronic Cats Bast Pro Mini M0
- Electronic Cats CatWAN USBStick
- Electronic Cats Hunter Cat NFC
- Electronic Cats NFC Copy Cat
- Electronut Labs Blip
- Electronut Labs Papyr
- EncoderPad RP2040
- Escornabot Makech
- Espressif ESP32 DevKitc V4 WROOM-32E
- Espressif ESP32 DevKitc V4 WROVER
- Espressif ESP32 TTGO T8 v1.7
- Espressif ESP32-EYE
- Espressif ESP32-LyraT
- Espressif-ESP32-S3-LCD-EV-Board
- Espressif-ESP32-S3-LCD-EV-Board_v1.5
- Espruino Bangle.js 2
- Espruino Pico
- Espruino Wifi
- Feather MIMXRT1011
- Feather MIMXRT1062
- FeatherS2
- FeatherS2 Neo
- FeatherS2 PreRelease
- FeatherS3
- FeatherS3 Neo
- Fig Pi
- Flipper Zero Wi-Fi Dev
- Fluff M0
- Fomu
- Franzininho WIFI w/Wroom
- Franzininho WIFI w/Wrover
- Freenove ESP32-WROVER-DEV-CAM
- Gravitech Cucumber M
- Gravitech Cucumber MS
- Gravitech Cucumber R
- Gravitech Cucumber RS
- HEIA-FR Picomo V2
- HMI-DevKit-1.1
- Hack Club Sprig
- Hacked Feather M0 Express with 8Mbyte SPI flash
- HalloWing M0 Express
- Hardkernel Odroid Go
- Heltec ESP32-S3-WIFI-LoRa-V3
- HexKyS2
- HiiBot BlueFi
- IMXRT1010-EVK
- IMXRT1015-EVK
- IkigaiSense Vita nRF52840
- IoTs2
- J&J Studios datum-Distance
- J&J Studios datum-IMU
- J&J Studios datum-Light
- J&J Studios datum-Weather
- Kaluga 1
- LILYGO T-DECK
- LILYGO T-DISPLAY
- LILYGO T-DISPLAY S3 v1.2
- LILYGO T-Display S3 Pro
- LILYGO T-Watch-S3
- LILYGO TEMBED ESP32S3
- LILYGO TTGO T-01C3
- LILYGO TTGO T-DISPLAY v1.1
- LILYGO TTGO T-DISPLAY v1.1 4M
- LILYGO TTGO T-OI PLUS
- LILYGO TTGO T8 ESP32-S2
- LILYGO TTGO T8 ESP32-S2 w/Display
- LOLIN S3 16MB Flash 8MB PSRAM
- LOLIN S3 MINI 4MB Flash 2MB PSRAM
- LOLIN S3 PRO 16MB Flash 8MB PSRAM
- Lilygo T-watch 2020 V3
- LoC BeR M4 base board
- Luatos Core-ESP32C3
- M5STACK STAMP-C3
- M5Stack Atom Echo
- M5Stack Atom Lite
- M5Stack Atom Matrix
- M5Stack Atom U
- M5Stack AtomS3
- M5Stack AtomS3 Lite
- M5Stack AtomS3U
- M5Stack Cardputer
- M5Stack Core Basic
- M5Stack Core Fire
- M5Stack Core2
- M5Stack CoreS3
- M5Stack Dial
- M5Stack M5Paper
- M5Stack Stick C
- M5Stack Stick C Plus
- M5Stack Timer Camera X
- MDBT50Q-DB-40
- MDBT50Q-RX Dongle
- MEOWBIT
- MORPHEANS MorphESP-240
- MagiClick S3 N4R2
- Maker Go ESP32C3 Supermini
- Maker Go ESP32C6 Supermini
- Maker badge by Czech maker
- MakerDiary nRF52840 MDK
- MakerDiary nRF52840 MDK USB Dongle
- MakerFabs-ESP32-S3-Parallel-TFT-With-Touch-7inch
- Makerdiary M60 Keyboard
- Makerdiary Pitaya Go
- Makerdiary nRF52840 Connect Kit
- Makerdiary nRF52840 M.2 Developer Kit
- Maple Computing Elite-Pi
- Melopero Shake RP2040
- Meow Meow
- Metro MIMXRT1011
- MicroDev microC3
- MicroDev microS2
- Mini SAM M4
- MixGo CE
- NUCLEO F446RE
- NUCLEO STM32F746
- NUCLEO STM32F767
- NUCLEO STM32H743
- NanoS3
- Neuron
- NodeMcu-ESP32-C2
- OMGS3
- OPENMV-H7 R1
- Oak Dev Tech BREAD2040
- Oak Dev Tech Cast-Away RP2040
- Oak Dev Tech PixelWing ESP32S2
- Oak Dev Tech RPGA Feather
- Open Hardware Summit 2020 Badge
- Oxocard Artwork
- Oxocard Connect
- Oxocard Galaxy
- Oxocard Science
- P1AM-200
- PCA10056 nRF52840-DK
- PCA10059 nRF52840 Dongle
- PCA10100 nRF52833 DK
- PYB LR Nano V2
- Pajenicko PicoPad
- Particle Argon
- Particle Boron
- Particle Xenon
- PewPew 10.2
- PewPew LCD
- PewPew M4
- PicoPlanet
- PillBug
- Pimoroni Badger 2040
- Pimoroni Badger 2040 W
- Pimoroni Inky Frame 5.7
- Pimoroni Inky Frame 7.3
- Pimoroni Interstate 75
- Pimoroni Keybow 2040
- Pimoroni Motor 2040
- Pimoroni PGA2040
- Pimoroni PGA2350
- Pimoroni Pico DV Base W
- Pimoroni Pico LiPo (16MB)
- Pimoroni Pico LiPo (4MB)
- Pimoroni Pico Plus 2
- Pimoroni Pico dv Base
- Pimoroni PicoSystem
- Pimoroni Plasma 2040
- Pimoroni Plasma 2040W
- Pimoroni Plasma 2350
- Pimoroni Servo 2040
- Pimoroni Tiny 2040 (2MB)
- Pimoroni Tiny 2040 (8MB)
- Pimoroni Tiny 2350
- Pimoroni Tiny FX
- ProS3
- PyCubedv04
- PyCubedv04-MRAM
- PyCubedv05
- PyCubedv05-MRAM
- PyKey 18 Numpad
- PyKey 44 Ergo
- PyKey 60
- PyKey 87 TKL
- PyboardV1_1
- RF.Guru RP2040
- RGBTouch Mini
- RP2.65-F
- RP2040 Stamp
- RP2350 Stamp
- RP2350 Stamp XL
- Raspberry Breadstick
- Raspberry Pi 4B
- Raspberry Pi Compute Module 4
- Raspberry Pi Compute Module 4 IO Board
- Raspberry Pi Pico
- Raspberry Pi Pico 2
- Raspberry Pi Pico W
- Raspberry Pi Zero
- Raspberry Pi Zero 2W
- Raspberry Pi Zero W
- Renode Cortex-M0+
- Robo HAT MM1 M4
- S2Mini
- S2Pico
- SAM E54 Xplained Pro
- SAM32v26
- SPRESENSE
- SQFMI Watchy
- SSCI ISP1807 Dev Board
- SSCI ISP1807 Micro Board
- ST STM32F746G Discovery
- STM32F411E_DISCO
- STM32F412G_DISCO
- STM32F4_DISCO
- Saola 1 w/Wroom
- Saola 1 w/Wrover
- Seeed Studio XIAO ESP32C3
- Seeed XIAO nRF52840 Sense
- Seeed Xiao ESP32-C6 4MB Flash 512KB SRAM
- Seeed Xiao ESP32-S3 Sense
- Seeeduino Wio Terminal
- Seeeduino XIAO
- Seeeduino XIAO KB
- Seeeduino XIAO RP2040
- Seeeduino XIAO RP2350
- Serpente
- SiLabs xG24 Dev Kit
- SiLabs xG24 Explorer Kit
- Silicognition LLC M4-Shim
- Silicognition LLC RP2040-Shim
- Simmel
- SparkFun LUMIDrive
- SparkFun MicroMod RP2040 Processor
- SparkFun MicroMod SAMD51 Processor
- SparkFun MicroMod nRF52840 Processor
- SparkFun Pro Micro RP2040
- SparkFun Pro Micro RP2350
- SparkFun Pro nRF52840 Mini
- SparkFun Qwiic Micro
- SparkFun RedBoard Turbo
- SparkFun SAMD21 Dev Breakout
- SparkFun SAMD21 Mini Breakout
- SparkFun STM32 MicroMod Processor
- SparkFun Teensy MicroMod Processor
- SparkFun Thing Plus - RP2040
- SparkFun Thing Plus - SAMD51
- SparkFun Thing Plus - STM32
- Sparkfun Thing Plus MGM240P
- Spotpear ESP32C3 LCD 1.44
- Sprite_v2b
- StackRduino M0 PRO
- Sunton ESP32-2424S012
- Sunton-ESP32-8048S050
- Sunton-ESP32-8048S070
- SuperMini NRF52840
- Swan R5
- TG-Boards' Datalore IP M4
- TG-Watch
- THUNDERPACK_v11
- THUNDERPACK_v12
- TTGO T8 ESP32-S2-WROOM
- Targett Module Clip w/Wroom
- Targett Module Clip w/Wrover
- Teensy 4.0
- Teensy 4.1
- Teknikio Bluebird
- The Open Book Feather
- ThingPulse Pendrive S3
- TinkeringTech ScoutMakes Azul
- TinyC6
- TinyPICO
- TinyPICO Nano
- TinyS2
- TinyS3
- TinyWATCH S3
- Trinket M0 Haxpress
- UARTLogger II
- VCC-GND Studio YD RP2040
- VCC-GND YD-ESP32-S3 (N16R8)
- VCC-GND YD-ESP32-S3 (N8R8)
- VIDI X V1.1
- W5100S-EVB-Pico
- W5500-EVB-Pico
- WK-50 Trackball Keyboard
- WSC-1450
- WarmBit BluePixel nRF52840
- Waveshare ESP32-S2-Pico
- Waveshare ESP32-S2-Pico-LCD
- Waveshare ESP32-S3-GEEK
- Waveshare ESP32-S3-Pico
- Waveshare ESP32-S3-Tiny
- Waveshare ESP32-S3-Zero
- Waveshare ESP32S3 LCD 1.28
- Waveshare RP2040-GEEK
- Waveshare RP2040-LCD-0.96
- Waveshare RP2040-LCD-1.28
- Waveshare RP2040-One
- Waveshare RP2040-PiZero
- Waveshare RP2040-Plus (16MB)
- Waveshare RP2040-Plus (4MB)
- Waveshare RP2040-TOUCH-LCD-1.28
- Waveshare RP2040-Tiny
- Waveshare RP2040-Zero
- WeAct ESP32-C6 (4MB)
- WeAct ESP32-C6 (8MB)
- WeAct Studio Pico
- WeAct Studio Pico 16MB
- WeMos LOLIN32 Lite
- Wemos Lolin C3 Mini
- Wemos Lolin C3 Pico
- Winterbloom Big Honking Button
- Winterbloom Sol
- WisdPi Ardu2040M
- WisdPi Tiny RP2040
- XinaBox CC03
- XinaBox CS11
- iLabs Challenger 840
- iMX RT 1020 EVK
- iMX RT 1040 EVK
- iMX RT 1050 EVKB
- iMX RT 1060 EVK
- iMX RT 1060 EVKB
- iMX RT1011 Nano Kit
- keithp.com snekboard
- micro:bit v2
- nanoESP32-S2 w/Wrover
- nanoESP32-S2 w/Wroom
- ndGarage[n°] Bit6: FeatherSnow-v2
- ndGarage[n°]Bit6:FeatherSnow
- nice!nano
- nullbits Bit-C PRO
- senseBox MCU
- senseBox MCU-S2 ESP32S2
- splitkb.com Liatris
- stm32f411ce-blackpill
- stm32f411ce-blackpill-with-flash
- sunton_esp32_2432S028
- sunton_esp32_2432S032C
- takayoshiotake Octave RP2040
- uChip
- uGame10
- uGame22
-
struct.calcsize(fmt: str) → int
Return the number of bytes needed to store the given fmt.
-
struct.pack(fmt: str, *values: Any) → bytes
Pack the values according to the format string fmt.
The return value is a bytes object encoding the values.
-
struct.pack_into(fmt: str, buffer: circuitpython_typing.WriteableBuffer, offset: int, *values: Any) → None
Pack the values 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: str, data: circuitpython_typing.ReadableBuffer) → Tuple[Any, Ellipsis]
Unpack from the data according to the format string fmt. The return value
is a tuple of the unpacked values. The buffer size must match the size
required by the format.
-
struct.unpack_from(fmt: str, data: circuitpython_typing.ReadableBuffer, offset: int = 0) → Tuple[Any, Ellipsis]
Unpack from the data starting at offset according to the format string fmt.
offset may be negative to count from the end of buffer. The return value is
a tuple of the unpacked values. The buffer size must be at least as big
as the size required by the form.