1. ホーム
  2. python

[解決済み] 拡張子のないファイルの種類を確認する方法は?重複

2022-12-14 07:33:45

質問

フォルダにファイルがたくさんありますが、拡張子がありません。ファイルの種類を確認するにはどうしたらよいですか?ファイルの種類をチェックして、それに応じてファイル名を変更したい。ここでは、関数 filetype(x) のようなファイルタイプを返すとします。 png . これをやりたいのです。

files = os.listdir(".")
for f in files:
    os.rename(f, f+filetype(f))

どうすればいいのでしょうか?

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

ファイル名や拡張子に依存せず、ファイルの内容(通常はヘッダ/マジックナンバー)に基づいてファイルを認識できる Python ライブラリがあります。

多くの異なるファイルタイプに対応する場合は python-magic . これは単に Python のバインディングで、確立された magic ライブラリのPythonバインディングです。 これは良い評判があり、私が行った限られた使用において、(小さなお墨付き)それは堅実なものでした。

また、より特殊なファイルタイプのためのライブラリもあります。 たとえば、Python の標準ライブラリには imghdr モジュールがあり、これは画像ファイルタイプに対してだけ同じことをします。

依存関係のない(純粋なPythonの)ファイルタイプチェックが必要な場合は filetype .