Python でファイルにバイトを書き込む

Manav Narula 2023年1月30日
  1. Python でファイルにバイトを書き込む
  2. Python でバイト配列をファイルに書き込む
  3. バイナリファイルに BytesIO オブジェクトを書き込む
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 Narula
Manav Narula avatar Manav Narula avatar

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

関連記事 - Python File