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 |
30ビット以上の値で使う場合は long のサポートが必要です。
浮動小数点のサポートが必要です。
CPython との違い
フォーマット文字列中に空白文字は使えません。
関数¶
- struct.calcsize(fmt)¶
指定した fmt で格納するために必要なバイト数を返します。
- struct.pack(fmt, v1, v2, ...)¶
フォーマット文字列 fmt にしたがって、値 v1、v2、... をパックします。戻り値は、値をエンコードしたバイト列オブジェクトです。
- struct.pack_into(fmt, buffer, offset, v1, v2, ...)¶
フォーマット文字列 fmt にしたがって、値 v1、v2、... をパックし、バッファ buffer の開始オフセット offset に格納します。 offset が負の場合は buffer の最後からのオフセットになります。
- struct.unpack(fmt, data)¶
フォーマット文字列 fmt にしたがって data からアンパックします。戻り値はアンパックした値のタプルです。
- struct.unpack_from(fmt, data, offset=0, /)¶
フォーマット文字列 fmt にしたがって "data の開始オフセット offset からアンパックします。 offset が負の場合は data の最後からのオフセットになります。戻り値はアンパックした値のタプルです。