まえがき
たまによくある処理、16進文字列とバイトの相互変換の仕方を知っておく。
binascii
標準ライブラリの binascii モジュールで行える。
a2b_hex と unhexlify が 16進文字列からバイト列への変換処理。
b2a_hex と hexlify が バイト列から16進文字列への変換処理。
hexlify/unhexlify は後からできた、違いは知らない。
a2b_hex/unhexlify の入力は str型も受け付けるが、
b2a_hex/hexlify は 入出力共に byte 型なので、bytes 型に変換して入力した方が間違いが少ない。
サンプル
#!/usr/bin/env python3
# coding: utf-8
"""python script
"""
import binascii
def main():
"""main
"""
text = '0123456789abcdef'.encode('ascii')
binary1 = binascii.a2b_hex(text)
binary2 = binascii.unhexlify(text)
hexstr1 = binascii.b2a_hex(binary1)
hexstr2 = binascii.hexlify(binary2)
print(hexstr1)
print(hexstr2)
if __name__ == '__main__':
main()