Pythonでは、bytes
型とstr
型の間で相互に変換することが可能です。これは、データのエンコーディングやデコーディングに使用されます。
bytes型とstr型の変換
Pythonのstr.encode()
メソッドを使用すると、str
型のデータをbytes
型にエンコードすることができます。逆に、bytes.decode()
メソッドを使用すると、bytes
型のデータをstr
型にデコードすることができます。
s = 'hello'
b = s.encode() # b'hello'
s2 = b.decode() # 'hello'
エンコーディングの指定
encode()
およびdecode()
メソッドでは、エンコーディングを指定することが可能です。デフォルトのエンコーディングはutf-8
です。
s = 'こんにちは'
b = s.encode(encoding='utf-8') # b'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf'
エラーハンドリング
不正なバイト列に遭遇した場合、デフォルトの挙動はエラーになります。しかし、errors='replace'
を指定することで、代替文字に置き換えることが可能です。
b = b'\xff'
s = b.decode('utf-8', 'replace') # '�'
以上、Pythonでbytes
型とstr
型の相互変換を行う方法について説明しました。これらの知識は、ファイルの読み書きやネットワーク通信など、さまざまな場面で役立つでしょう。