Masayan tech blog.

  1. ブログ記事一覧>
  2. Pythonでファイルの拡張子のみを取得する方法

Pythonでファイルの拡張子のみを取得する方法

公開日

環境

  • 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でファイルの拡張子のみを取得する方法について紹介しています。ぜひ参考にしてみてください