splitext関数でファイル名から拡張子を抽出する方法を解説します。
非常に簡単なので1分間ほどで理解できます。
splitext関数の使い方
splitext関数の文法は次の通りです。
import os
os.path.splitext(path)
一行目のimport os
でosモジュールをインポートします。os.path.splitext
の引数path
にファイル名を入力します。
例を見てみましょう。
>>> import os
>>> os.path.splitext("main.py")
('main', '.py')
これでファイル名と拡張子を分割できました。
また、パス付のファイル名でも同様に拡張子を抽出できます。
>>> import os
>>> os.path.splitext("./aaa/main.py")
('./aaa/main', '.py')
split関数との違い
split関数とsplitext関数の違いを考えてみましょう。
最初の例に関しては両者とも同様の結果を返します。
splitext
関数の場合
>>> import os
>>> os.path.splitext("main.py")
('main', '.py')
split
関数の場合
>>> "main.py".split(".")
['main', 'py']
ただし、二番目の例では結果が変わってきます。
splitext
関数の場合
>>> import os
>>> os.path.splitext("./aaa/main.py")
('./aaa/main', '.py')
split
関数の場合
>>> "./aaa/main.py".split(".")
['', '/aaa/main', 'py']
この例の場合、拡張子の「.」だけでなく、先頭の「.」まで分割の対象になってしまいます。
まとめ
拡張子を取得する際にはsplit
関数でなく、splitext
関数を使用しましょう。