bytesの使い方
Python 3.7.5 で確認。
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'