1. ホーム
  2. パイソン

[解決済み】Python 3でバイトを16進文字列に変換する正しい方法は何ですか?

2022-03-27 10:50:50

質問

Python 3でバイトを16進文字列に変換する正しい方法は何ですか?

という主張を見かけますが bytes.hex メソッドを使用します。 bytes.decode コーデック、そして その他 というような、最も驚かれるような機能がありますが、それは無駄です。ただ、バイトを16進数にしたいだけなんです!

解決方法は?

Python 3.5以降では、ようやくこのような不都合はなくなりました。

>>> b'\xde\xad\xbe\xef'.hex()
'deadbeef'

と逆になります。

>>> bytes.fromhex('deadbeef')
b'\xde\xad\xbe\xef'

は、ミュータブルな bytearray 型になります。

参考にしてください。 https://docs.python.org/3/library/stdtypes.html#bytes.hex