【Python入門】splitext関数でファイル名から拡張子を抽出する

Python

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関数を使用しましょう

タイトルとURLをコピーしました