\

Pythonのデータ型には多くの種類がありますが、その中の1つに bytes型 があります。bytes型はバイナリデータを扱うデータ型で、文字列の文字コードを表しています。

bytes型の自力入力

b'\x00\x01\x02\x03' # result: b'\x00\x01\x02\x03'
b'\x64\x65\x66\x67' # result: b'defg' # asciiコードに対応した文字が表示されている

ファイルからbytesで読込

# with無し
fp = open('filename.bin', 'rb')
all_bytes = fp.read()
fp.close()

# with付き
with open('filename.bin', 'rb') as fp:
    all_bytes = fp.read()

bytesの部分切出し

a = b'\x00\x01\x02\x03' # 準備コード
a[1:3] # listなのでlistと同じ要領でスライスが可能
# result: b'\x01\x02'

整数をbytesへ変換

a = 255 # 準備コード
a.to_bytes(2, 'little') # to_bytes(変換後のバイト数, エンディアン)
# result: b'\xff\x00'

bytesから整数へ

a = 255 # 準備コード
byts = a.to_bytes(2, 'little') # 準備コード
int.from_bytes(byts, 'little') # int.from_bytes(bytes, エンディアン)
# result: 255

bytesから整数へ(符号付き)

a = -255 # 準備コード
byts = a.to_bytes(2, 'little', signed=True) # 準備コード
int.from_bytes(byts, 'little', signed=True) # int.from_bytes(bytes, エンディアン, signed=True)
# result: -255

16進表記文字列からbytesへ

bytes.fromhex('F1E2f3f4')
bytes.fromhex('F1E2 f3f4')
bytes.fromhex('F1 E2 f3 f4')
# result: b'\xf1\xe2\xf3\xf4'

bytesを16進表記文字列へ

by = bytes.fromhex('F1E2f3f4') # 準備コード
by.hex()
# result: 'f1e2f3f4'

以上がPythonの bytes型 の基本的な使い方になります。これらの知識を持っていれば、バイナリデータの操作がより容易になります。.

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です