1. ホーム
  2. python

[解決済み] Pythonでファイルがバイナリ(非テキスト)かどうかを検出するにはどうしたらいいですか?

2022-05-16 01:06:39

質問

Pythonでファイルがバイナリ(非テキスト)かどうかを判断するにはどうしたらよいですか?

私はPythonで大きなファイルのセットを検索しており、バイナリファイルのマッチを取得し続けます。これは、出力を信じられないほど乱雑に見せます。

私は grep -I を使うことができるのは知っていますが、私はgrepが可能にする以上のことをデータでやっています。

以前なら、私は単に 0x7f よりも大きい文字を検索していましたが utf8 などでは、最近のシステムでは不可能です。理想的なのは、解決策が高速であることです。

どのように解決するのか?

また mimetypes モジュールを使用することもできます。

import mimetypes
...
mime = mimetypes.guess_type(file)

バイナリの MIME タイプのリストをコンパイルするのはかなり簡単です。例えば、Apache は mime.types ファイルを配布しており、これを解析して一連のリスト、バイナリおよびテキストを作成し、その MIME がテキストまたはバイナリのリストにあるかどうかを確認することができます。