Categories: Python

【Python】structモジュールの使い方

この記事では、Pythonのstructモジュールの使い方について解説します。

structといえば構造体を思い浮かべるかもしれませんが、Pythonではバイナリデータを扱うモジュールです。ただし、無関係というわけではなく、C言語の構造体データなどを変換するために使われるモジュールです。

それでは、使い方を見ていきましょう!

structモジュールの使い方

structモジュールは、データをパックしたりアンパックするのに使われます。

インポート

structモジュールは、標準ライブラリなのでインポートするだけで使えます。

from struct import *

パック

pack関数でフォーマットを指定して値をbytes型に変換することができます。

データはカンマ区切りで複数指定することができます。

pack(format, v1, v2,...)
パックとは?

データをフォーマットを指定してバイナリ形式に変換すること

アンパック

unpack関数でバイナリデータを復元することができます。

unpack(format, buffer)
アンパックとは?

バイナリデータから元のデータに復元すること

フォーマット文字

フォーマット文字には以下のようなものがあります。

フォーマット C言語の型 Pythonの型 標準のサイズ
c char 長さ1のバイト列 1
? _Bool bool型 1
h short 整数 2

フォーマット文字は他にもたくさん用意されています。

Link書式指定文字 - struct --- バイト列をパックされたバイナリデータとして解釈する — Python ドキュメント

サンプル

試しに適当なデータをパック・アンパックしてみます。

from struct import *

# パック
pack_data = pack('ch?', b'a', 1, True)
print(f'パックしたデータ: {pack_data}')

# アンパック
unpack_data = unpack('ch?', pack_data)
print(f'アンパックしたデータ: {unpack_data}')

実行結果

パックしたデータ: b'a\x00\x01\x00\x01'
アンパックしたデータ: (b'a', 1, True)

まとめ

この記事では、structモジュールの使い方を簡単に解説しました。

structモジュールを使うことでバイナリデータを簡単にパック・アンパックできるので便利でした。

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

View Comments

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

4週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

5か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago