ファイルパス/URLから拡張子を取得する方法 | Python

※当サイトはアフィリエイト広告を利用しています。

この記事ではPythonにおいてファイル/URLから拡張子を取得する方法を紹介します。
スポンサーリンク


ファイルパスから拡張子を取得する方法

ファイルパスから拡張を取得するにはos.path.splitextを使用すると便利です。

os.pathは標準ライブラリなので、新規にインストールする必要などはありません。

os.path.splitextで拡張子を取得するサンプルコードは以下です。
import os.path

path = "C:\\TestDir\\TestFile.txt"

txts = os.path.splitext(path)
print(txts) #Result: ('C:\\TestDir\\TestFile', '.txt')

Extension = txts[-1]
print(Extension) #Result: '.txt'
os.path.splitextは拡張子までのパスと拡張子を分けた配列を出力します。拡張子にはドットが含まれます。

拡張子のみを取得するにはサンプルコードのように[-1]要素を参照すればOKです。

拡張子がないファイルパスの場合に例外処理が必要か?

拡張子がないファイルパスに対して、os.path.splitextを使用すると空文字列を返すので基本的には例外処理は不要です。

以下、サンプルコードです。
import os.path

path2 = "C:\\TestDir\\TestFile"
txts2 = os.path.splitext(path2)
print(txts2) #Result: ('C:\\TestDir\\TestFile', '') <- 空文字列が出力されるので拡張子がないときの例外処理は不要

Extension2 = txts2[-1]
print(Extension2) #Result: '' <- 空文字列が出力されるので拡張子がないときの例外処理は不要
例外処理なしで先程と同じコードで動作することがわかります。

URLから拡張子を取得する場合

URLから拡張子を取得する場合もそのままos.path.splitextが使用可能です。

以下、サンプルコードです。
import os.path

url = "https://www.example.com/TestFile.txt"

txts3 = os.path.splitext(url)
print(txts3) #Result: ('https://www.example.com/TestFile', '.txt') <- URLも拡張子が取得可能

まとめ

この記事ではPythonにおいてファイル/URLから拡張子を取得する方法を紹介しました。