Pythonでファイル名から拡張子を取得する方法は、主に2つの方法が推奨されています。1つ目は、os.path.splitext()を使った方法で、2つ目はPython 3.4以降で使用可能なpathlibモジュールを使う方法です。

os.path.splitext()による方法

最も一般的な方法は、os.path.splitext()を使ってファイル名を分割し、拡張子部分を取得することです。splitext()はファイル名を拡張子とそれ以外に分割し、タプルとして返します。

import os
filename, extension = os.path.splitext("/path/to/file.txt")
print(extension)  # 出力: .txt

この方法は、拡張子が1つだけのファイルに適しており、Unix系の隠しファイル(例: .bashrc)には拡張子がないものとして処理されます。

pathlibモジュールによる方法

Python 3.4以降では、pathlibモジュールを使ってファイル名やパスをより簡潔に操作できます。pathlib.Path().suffixは拡張子を取得し、suffixesは複数の拡張子がある場合にリスト形式で返します。

from pathlib import Path
extension = Path("/path/to/file.tar.gz").suffixes
print(extension)  # 出力: ['.tar', '.gz']

注意点

  • .split()を使ってドットでファイル名を分割する方法もありますが、Unix系の隠しファイルや複数拡張子のファイルに対しては適切に動作しないことがあります。
  • .suffixesは複数の拡張子がある場合(例: .tar.gz)に役立ちますが、一般的なファイルの処理にはsplitext()がシンプルでよく使われます。 これらの方法を活用することで、Pythonで効率的にファイル名の拡張子を操作できます。