Python パス・URLからファイルの拡張子を取得する

2021年9月25日土曜日

Python

t f B! P L

Python でファイルパスや URL から拡張子を取得する方法です。 Python で拡張子を取得する場合は、os.path.splitext を使用します。

os.path.splitext の構文

os.path.splitext は、引数で渡したパスを拡張子とそれ以外のパスに分割する関数で、公式ドキュメントでは次のように定義されています。

パス名 path を (root, ext) のペアに分割します。 root + ext == path になります。 ext は空文字列か 1 つのピリオドで始まり、多くても 1 つのピリオドを含みます。ベースネームを導出するピリオドは無視されます; splitext(’.cshrc’) は (’.cshrc’, ‘’) を返します。
https://docs.python.org/ja/3/library/os.path.html

サンプルコード

さっそく、パスから拡張子を取得するサンプルコードを見てみましょう。

import os
base_path = '/path/to/sample.jpg'
_, ext = os.path.splitext(base_path)
print(ext)  #-> .jpg

URL から拡張子を取得する場合は、同じように書けます。
import os
base_path = 'https://exmaple.com/a/sample.html'
_, ext = os.path.splitext(base_path)
print(ext)  #-> .html

拡張子がないパスや URL の場合は、 `os.path.splitext` で取得する拡張子は長さ0のブランク文字です。
import os
base_path = 'https://exmaple.com/a/sample'
_, ext = os.path.splitext(base_path)
print(len(ext))  #-> 0

拡張子を除いたファイル名を取得

ディレクトリ名を含むファイルパスから、拡張子を除いたファイル名のみを取得する場合は、次のように書きます。

import os
file_path = "/path/to/myimage.jpg"
path, ext = os.path.splitext(os.path.basename(file_path) )
print(path)  #=> myimage
スポンサーリンク

QooQ