ファイルパスから拡張子を取得する方法
ファイルパスから拡張を取得するには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も拡張子が取得可能