バイナリファイルとは?pythonでの開き方

binary file eyecatch image

バイナリファイル(binary file)とは、テキストではなく、コンピュータが解釈するための形式で保存されたファイルのことです。簡単に言うと、人間が直接読める文字(アルファベットや記号)ではなく、0と1のビット列で構成されたファイルです。

目次

バイナリファイルとテキストファイルとの違い

文字列が多いMicrosoft Office Word(.docx)系のファイルなどを見ると、テキストが多いのでテキストファイルと思いがちですが、実はMicrosoft Office Wordもバイナリファイルになります。以下にテキストファイルとバイナリファイルとの違いを表形式で示します。

種類内容の表現方式人間が読める?
テキストファイル文字(ASCIIやUTF-8).txt, .csv, .html
バイナリファイルビット例(0と1の組み合わせ).exe, .jpg, .mp3×
(専用ソフトが必要)

バイナリファイルの例

バイナリファイルの例には以下のものがあります。

ファイルの種類拡張子
実行ファイル.exe, .dllなど
画像ファイル.jpg, .png, .gifなど
音声ファイル.mp3, .wavなど
動画ファイル.mp4, .aviなど
Microsoft Office系のファイル.docx, .xlsxなど

バイナリファイルを開くには?

テキストエディタで開くと文字化けすることが多いです。この記事のWord形式ファイル(拡張子:.docx)をメモ帳で開いてみると下図のようにも文字化けしました。

garbled text image

実際に開くには専用のソフトやプログラムで読み込んで、意味のあるデータとして扱います。また、プログラミングで扱うときは、ファイルをrbread binary)で開くのが基本です。

この記事のwordファイル形式を読み込むと長すぎるので、以下のようなwordファイル形式(.docxファイル)をpythonで読み込んでみます。(下図の例はLibreOfficeで開いています)

Python
# Pythonの例(バイナリファイルを読み込む)
with open("バイナリファイルとは.docx", "rb") as f:
    data = f.read()
    print(data)

すると

b’PK\x03\x04\x14\x00\x08\x08\x08\x00Lw\xc2Z\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00_rels/.rels\xad\x92\xdbJ\x031\x10\x86\xef\xfb\x14a\xee\xbb\xd9V\x11\x91\xcd\xf6F\x84\xde\x89\xd4\x07\
~~(中略)~~
x14\x00\x08\x08\x08\x00Lw\xc2Z\xd0\xa8\xa5\xc2\x9c\x00\x00\x00\xf4\x00\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00V\x1f\x00\x00customXml/item1.xmlPK\x01\x02\x14\x00\x14\x00\x08\x08\x08\x00Lw\xc2Z\xff\xf0\xfa\xe9\xcd\x00\x00\x00D\x01\x00\x00

と人間には読めない文字の羅列が出力されました。

.docx.odtファイルの本文をpythonで読むにはライブラリを使うと便利です。
以下の記事で詳述しています。
▼Wordファイル(.docx)をpyhtonで読み込み・操作するには?
▼Writerファイル(.odt)をpythonで読み込み・操作するには?

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次