環境
- Windows 10
- Python 3.10.1
結論
- osモジュールのos.path.splitext()を使用することで可能
実装
- 呼び出し側
tests\test_xfile.py
from shared.Domain.xfile import XFile
from shared.Domain.xurl import XUrl
def test_ファイルオブジェクトから拡張子を取得できること():
x_file = XFile(
x_url=XUrl(
href="https://www.meti.go.jp/press/2021/06/20210616004/20210616004-1.pdf"
)
)
assert x_file.get_extension() == ".pdf"
- splitextの返り値は拡張子と拡張子以外に分割されたタプル
import os
import urllib
from shared.Domain.xurl import XUrl
from shared.Domain.xregex import XRegex
from shared.Application.check_regex_service import CheckRegexService
from shared.Domain.xstr import XStr
class XFile:
def __init__(self, x_url: XUrl):
self.x_url = x_url
def get_url(self):
return self.x_url
# ファイル名を返します(フォルダ、クエリストリング除く純粋なファイル名をurlデコードしたもの)
def get_file_name(self):
file_name = CheckRegexService().execute(
XRegex(".+?(?=\?)"), xstr=XStr(self.x_url.get_href())
)
return urllib.parse.unquote(os.path.basename(file_name))
def get_file_name_with_queryst(self):
return os.path.basename(self.x_url.get_url())
def get_alt(self):
return self.alt
# 拡張子を返します
def get_extension(self):
return os.path.splitext(self.get_file_name())[1]
以上です
まとめ
いかがでしたでしょうか。本記事では、Pythonでファイルの拡張子のみを取得する方法について紹介しています。ぜひ参考にしてみてください