【Python】ファイルをバイナリモードで読み書き

Pythonでファイルをバイナリモードで読み書きする方法について入門者向けにまとめました。

【open関数】バイナリモードで読み書き

バイナリデータとは、バイナリ (binary:2進法) 形式で表現されたデータの総称です。
ファイルは、テキストファイルとバイナリファイルに大別されます。

種別 概要
テキストファイル メモ帳など、通常のテキストエディタで読み書きできる文字、改行、タブ文字などから構成されるファイル。(.txt、.csv、.ini、.bat、.htmlなどの拡張子をもつファイル)
バイナリファイル 画像ファイルやExcelファイルなど、特定の文字コード(文字、改行、タブ文字など)以外のに任意のビット列を含むファイル。テキストファイル以外はバイナリファイル。(.jpg、.png .png、.xlsx、.exe などの拡張子をもつファイル)

動画解説

本ページの内容は以下動画でも解説しています。

Pythonのopen関数では、バイナリモードを使うことでバイナリファイルを操作できます。
Pythonのopen関数で「ファイルをバイナリモードで読み書き」には引数に「b」を追加します。

引数 説明
rb バイナリモードで読み込み
wb バイナリモードで書き込み

サンプルコード

サンプルプログラムのソースコードです。


【変換】バイナリファイル ↔ テキストファイル

BASE64とは、バイナリ形式のファイルをASCII形式(英大文字、小文字、数字、記号の64文字のみを用いたデータの表現形式)に変換する方式です。
例えば、メール(SMTPプロトコル)は可読文字のみの使用を前提としています。
拡張子は「.b64」です。
Pythonでは標準モジュール「base64」でBASE64を簡単に扱えます。

■エンコード


■デコード


【Python】BASE64でファイルのエンコード・デコード
PythonでBASE64のファイルエンコード・デコードをする方法をソースコード付きで解説します。

【応用例】バイナリモードの活用例

記事リンク 概要
BMP画像のヘッダ解析 BMP画像ファイルを読み込み、ヘッダ情報を解析します。
BMP画像の明るさを半分 BMP画像の明るさを半分にします。
【Python超入門】使い方とサンプル集
Pythonの使い方について、基礎文法から応用例まで入門者向けに解説します。

コメント