バイナリファイルをPythonで操作する!初心者向け7ステップ

Pythonを使用してバイナリファイルを操作する図解Python
この記事は約6分で読めます。

 

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればカスタムコードを使って機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

プログラミングの世界では、様々な形式のデータを扱うことがあります。

その中でも、特にバイナリファイルの操作は多くのプログラムで必要とされています。

この記事では、プログラミング言語Pythonを使用してバイナリファイルを操作する方法について解説します。

Pythonでバイナリファイルを読み書きする方法から、応用例までを初心者向けに7ステップで解説します。

具体的なコード例とその説明を通じて、あなたもPythonでバイナリファイルを自由自在に操作できるようになることでしょう。

●Pythonとは?

Pythonは、易しさと多機能性を兼ね備えたプログラミング言語です。

その読みやすさと柔軟性から、初心者にも扱いやすい言語として評価されています。

また、科学計算やデータ分析、Web開発など、幅広い領域で利用されています。

●バイナリファイルとは?

バイナリファイルは、人間が直接読むことができない、0と1で構成されたデータを格納したファイルのことを指します。

これに対し、人間が直接読むことが可能なテキストファイルとは異なります。

画像ファイルや音声ファイル、実行可能ファイルなど、多くのファイルがバイナリファイルとして保存されています。

●Pythonでバイナリファイルを読み込む基本的な方法

Pythonでバイナリファイルを読み込む際には、’rb’モードを使用します。

‘r’は読み込みを、’b’はバイナリを意味します。

○’rb’モードを使用した読み込み方法

Pythonでファイルを開く際には、open関数を使用します。

ここで指定するモードが’rb’であると、そのファイルはバイナリモードで読み込まれます。

○サンプルコード1:バイナリファイルを読み込む

下記のコードは、’sample.bin’という名前のバイナリファイルを読み込む例を表しています。

この例では、open関数でファイルを開き、readメソッドでファイルの内容を読み込んでいます。

with open('sample.bin', 'rb') as f:
    data = f.read()
print(data)

上記のコードを実行すると、’sample.bin’というファイルの内容がバイナリデータとして読み込まれ、その結果がprint関数によって表示されます。

●Pythonでバイナリファイルに書き込む基本的な方法

Pythonでバイナリファイルにデータを書き込む際には、’wb’モードを使用します。

‘w’は書き込みを、’b’はバイナリを意味します。

○’wb’モードを使用した書き込み方法

Pythonでファイルに書き込む際には、open関数を使用します。

ここで指定するモードが’wb’であると、そのファイルにバイナリデータが書き込まれます。

○サンプルコード2:バイナリファイルに書き込む

下記のコードは、’output.bin’という名前のバイナリファイルにデータを書き込む例を表しています。

この例では、open関数でファイルを開き、writeメソッドでファイルにデータを書き込んでいます。

data = b'\x00\x01\x02\x03\x04'
with open('output.bin', 'wb') as f:
    f.write(data)

上記のコードを実行すると、’output.bin’というファイルにバイト列のデータが書き込まれます。

書き込んだデータは、’rb’モードでファイルを開き、readメソッドで読み込むことで確認できます。

●バイナリファイルの操作に関する注意点

バイナリファイルの操作には注意が必要です。

特に、書き込み操作は既存の内容を上書きしてしまうので、誤って重要なデータを消去しないよう注意が必要です。

また、バイナリデータは直接読むことが難しく、意図した通りの操作が行われているかを確認するためには、適切なツールを用いる必要があります。

●Pythonでバイナリファイルを操作する応用例

ここからは、Pythonを用いてバイナリファイルを操作する応用例について解説します。

○サンプルコード3:バイナリデータの加工

下記のコードは、読み込んだバイナリデータに対して加工を行う例を表しています。

この例では、バイナリデータを整数のリストに変換し、各整数に1を加えた後、再度バイナリデータに戻しています。

python
with open('sample.bin', 'rb') as f:
    data = f.read()

integers = list(data)
increased = [i + 1 for i in integers]
new_data = bytes(increased)

with open('output.bin', 'wb') as f:
    f.write(new_data)

上記のコードを実行すると、’sample.bin’から読み込んだバイナリデータが1つずつ増加させられ、その結果が’output.bin’というファイルに書き込まれます。

○サンプルコード4:バイナリファイルのコピー

下記のコードは、バイナリファイルを別のファイルにコピーする例を表しています。

この例では、読み込みと書き込みを同時に行っています。

with open('source.bin', 'rb') as sf, open('destination.bin', 'wb') as df:
    df.write(sf.read())

上記のコードを実行すると、’source.bin’というファイルの内容が’destination.bin’というファイルにコピーされます。

○サンプルコード5:バイナリファイルの結合

下記のコードは、複数のバイナリファイルを結合して一つのファイルにする例を表しています。

この例では、一つずつファイルを開き、その内容を読み込み、新たなファイルに書き込んでいます。

with open('output.bin', 'wb') as of:
    for filename in ['file1.bin', 'file2.bin', 'file3.bin']:
        with open(filename, 'rb') as f:
            of.write(f.read())

上記のコードを実行すると、’file1.bin’、’file2.bin’、’file3.bin’というファイルの内容が結合され、’output.bin’というファイルに書き込まれます。

まとめ

この記事では、Pythonでバイナリファイルを操作する基本的な方法から、応用例までを初心者向けに解説しました。

Pythonは、その読みやすさと多機能性から幅広い用途で使用されています。

その中でも、バイナリファイルの操作は、プログラムの多くで必要とされています。

この記事が、あなたのPythonでのバイナリファイル操作の一助となれば幸いです。