このドキュメンテーションは、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

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. 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 の最後からのオフセットになります。戻り値はアンパックした値のタプルです。