Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでバイナリデータをファイルに書き込む方法【初心者向け解説】

Pythonでバイナリデータをファイルに書き込む方法

「バイナリファイル」とは、内容が人間が読める文字(テキスト)で構成されていないファイルのことを指します。具体的には、JPEGやGIFなどの画像ファイル、MP3などの音声ファイル、WordやPDFといったドキュメント形式のファイルなど、さまざまな種類が含まれます。

Pythonでは、open() 関数を使ってファイルを開く際、デフォルトでは「テキストモード」で開かれます。バイナリモードでファイルを開きたい場合は、モード指定に 'b' を追加します。たとえば、読み書き両用のバイナリモードなら 'w+b' のように指定します。

サンプルコード

f = open('my_file', 'w+b')
byte_arr = [120, 3, 255, 0, 100]
binary_format = bytearray(byte_arr)
f.write(binary_format)
f.close()

コードの解説

このコードでは、まず 'w+b' モード(バイナリ書き込み・読み込みモード)で「my_file」というファイルを開いています。

次に、数値のリスト [120, 3, 255, 0, 100]bytearray() に渡してバイト列に変換します。bytearray() を使うことで、0〜255の範囲の整数値をそのままバイトデータとして扱えるようになります。

そして f.write() メソッドを使い、このバイト列をバイナリファイルとして書き込みます。最後に f.close() でファイルを閉じれば完了です。

with文を使ったより安全な書き方

実務では、ファイルの閉じ忘れを防ぐために with 文を使うのがおすすめです。以下のように記述すると、処理が終わった時点で自動的にファイルが閉じられます。

byte_arr = [120, 3, 255, 0, 100]

with open('my_file', 'wb') as f:
    f.write(bytearray(byte_arr))

このようにPythonでは、モードに 'b' を付けるだけで簡単にバイナリデータを扱うことができます。画像や音声など、テキスト以外のデータを操作する際には必ずバイナリモードを使用しましょう。

  1. PythonでPDFファイルをExcelファイルに変換する方法を解説

    Pythonには、さまざまな処理に対応できる豊富なライブラリが用意されています。本記事では、その中でもPDFファイルをExcelファイルに変換する方法について詳しく解説します。PythonでPDFをCSV形式に変換できるパッケージは複数存在しますが、ここではTabula-pyモジュールを使用します。Tabula-pyの主要部分はJavaで書かれており、PDFドキュメントを読み込み、PythonのDataFrameとして取得したり、JSONオブジェクトに変換したりすることができます。事前準備:JavaのインストールTabula-pyを使用する前に、システムにJavaが事前にインストールされている

  2. Pythonのbase64モジュールを使ったデータエンコード・デコード入門

    PythonにおけるBase64エンコーディングとはPython標準ライブラリのbase64モジュールは、バイナリデータをプレーンテキスト(ASCII)プロトコルで安全に送信できる形式へ変換するための機能を提供します。メール送信、URLへの埋め込み、HTTP POSTリクエストなど、テキストベースの通信経路でバイナリデータを扱いたい場面で活躍するモジュールです。このモジュールが実装しているのは、RFC 3548で定義されたBase16、Base32、Base64の各アルゴリズム、および事実上の標準となっているAscii85とBase85のエンコーディングです。RFC 3548準拠のエンコーディ