このドキュメンテーションは、MicroPython の最新開発ブランチのためのものです。 リリースバージョンでは利用できない機能に言及することがあります。

特定のリリースのドキュメントをお探しの場合は、左側のドロップダウンメニューを使って、 望みのバージョンを選択します。

struct -- 基本データ型のパックとアンパック

このモジュールは、該当する CPython モジュールのサブセットを実装しています。 詳しくはオリジナルの CPython ドキュメンテーションを参照してください: struct.

次のバイト順をサポートしています:

文字 バイト順 サイズ アライメント
@ ネイティブ ネイティブ ネイティブ
< リトルエンディアン 標準 none
> ビッグエンディアン 標準 none
! ネットワーク(= ビッグエンディアン) 標準 none

次のデータ型をサポートしています:

フォーマット C 型 Python 型 標準サイズ
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
f float float (2) 4
d double float (2) 8
s char[] bytes  
P void * integer  
  1. 30ビット以上の値で使う場合は long のサポートが必要です。
  2. 浮動小数点のサポートが必要です。

CPython との違い

フォーマット文字列中に空白文字は使えません。

関数

struct.calcsize(fmt)

指定した fmt で格納するために必要なバイト数を返します。

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

フォーマット文字列 fmt にしたがって、値 v1v2、... をパックします。戻り値は、値をエンコードしたバイト列オブジェクトです。

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

フォーマット文字列 fmt にしたがって、値 v1v2、... をパックし、バッファ buffer の開始オフセット offset に格納します。 offset が負の場合は buffer の最後からのオフセットになります。

struct.unpack(fmt, data)

フォーマット文字列 fmt にしたがって data からアンパックします。戻り値はアンパックした値のタプルです。

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

フォーマット文字列 fmt にしたがって "data の開始オフセット offset からアンパックします。 offset が負の場合は data の最後からのオフセットになります。戻り値はアンパックした値のタプルです。