Python でファイルにバイトを書き込む
このチュートリアルでは、Python でバイナリファイルにバイトを書き込む方法を紹介します。
バイナリファイルには bytes 型の文字列が含まれています。バイナリファイルを読み込むと、bytes 型のオブジェクトが返されます。Python では、バイトは 16 進数で表現されます。Python では、バイトは 16 進数で表現され、その前に b
という文字が付き、バイトであることを示します。
Python でファイルにバイトを書き込む
ファイルにバイトを書き込むには、まず open()
関数を用いてファイルオブジェクトを作成し、ファイルのパスを指定します。ファイルはバイナリファイルの書き込みモードを指定する wb
モードで開かなければならません。次のコードは、ファイルにバイトを書き込む方法を示しています。
data = b"\xC3\xA9"
with open("test.bin", "wb") as f:
f.write(data)
また、既存のファイルの最後にデータを追加する必要がある場合には、追加モード a
を使用することもできます。例えば、以下のようになります。
data = b"\xC3\xA9"
with open("test.bin", "ab") as f:
f.write(data)
特定の位置にバイトを書き込むには、データを読み書きするためにファイルポインタの位置を指定する seek()
関数を使うことができます。例えば、
data = b"\xC3\xA9"
with open("test.bin", "wb") as f:
f.seek(2)
f.write(data)
Python でバイト配列をファイルに書き込む
関数 bytearray()
を用いてバイト配列を作成することができる。これは変異可能な bytearray
オブジェクトを返します。また、これをバイトに変換して不変にすることもできます。以下の例では、バイト配列をファイルに書き込みます。
arr = bytearray([1, 2, 5])
b_arr = bytes(arr)
with open("test.bin", "wb") as f:
f.write(b_arr)
バイナリファイルに BytesIO
オブジェクトを書き込む
io
モジュールは、入出力関数やファイル処理に関連したクラスを拡張することができます。これは、メモリバッファのチャンクにバイトやデータを格納するために使われ、Unicode データを扱うこともできます。ここでは、BytesIO
クラスの getbuffer()
メソッドを用いてオブジェクトの読み書きビューを取得します。以下のコードを参照してください。
from io import BytesIO
bytesio_o = BytesIO(b"\xC3\xA9")
with open("test.bin", "wb") as f:
f.write(bytesio_o.getbuffer())
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn