ustruct -- バイナリデータのパックとアンパック

このモジュールは、Pythonの値とCのようなデータ構造体との変換を行う関数を提供します。

calcsize(format: str) int

フォーマット文字列に対応するデータサイズを取得します。

パラメータ:

format (str) -- データフォーマット文字列。

戻り値:

このフォーマットを表現するために必要なバイト数。

pack(format, value1, value2, ...)

指定したフォーマットを使って値をパックします。

パラメータ:

format (str) -- データフォーマット文字列。

戻り値:

バイト列にエンコードしたデータ。

pack_into(format, buffer, offset, value1, value2, ...)

指定したフォーマットで値をエンコードし、指定したバッファに書き込みます。

パラメータ:
  • format (str) -- データフォーマット文字列。

  • buffer (bytearray) -- エンコードしたデータを格納するためのバッファ。

  • offset (int) -- バッファの開始点からのオフセット。バッファの終端からカウントする場合は負の値を指定します。

unpack(format, data) Tuple

指定したフォーマットを使ってバイナリデータをデコードします。

パラメータ:
  • format (str) -- データフォーマット文字列。

  • data (bytes or bytearray) -- アンパックするデータ。

戻り値:

デコードしたデータを値のタプルとして返します。

unpack_from(format, data, offset) Tuple

指定したフォーマットでバッファからバイナリデータをデコードします。

パラメータ:
  • format (str) -- データフォーマット文字列。

  • data (bytes or bytearray) -- アンパックするデータバッファ。

  • offset (int) -- データの開始点からのオフセット。データの終わりから数えるには負の値を指定します。

戻り値:

デコードしたデータを値のタプルとして返します。

以下のバイトオーダーがサポートされています:

文字

バイトオーダ

Size

アライメント

@

ネイティブ

ネイティブ

ネイティブ

<

リトルエンディアン

標準

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

4

I

unsigned int

integer

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

4

d

double

float

8

s

char[]

bytes

P

void *

integer

  • (1) 最大 +/-1073741823 の値をサポートします