Masayan tech blog.

  1. ブログ記事一覧>
  2. Pythonでパス文字列からファイル名のみを取得する方法

Pythonでパス文字列からファイル名のみを取得する方法

公開日

環境

  • Windows 10
  • Python 3.10.1

結論

osモジュールのos.path.basename()を使用する

実装

呼び出し側

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_file_name() == "20210616004-1.pdf"

ファイルクラス

  1. get_file_name内で、正規表現でクエリストリングをカットする
  2. 1の結果に対し、path.basenameでファイル名に付帯するフォルダパスをカットする

shared\Domain\xfile.py

import os

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_file_name(self):
        file_name = CheckRegexService().execute(
            XRegex(".+?(?=\?)"), xstr=XStr(self.x_url.get_href())
        )

        return os.path.basename(file_name)

...割愛

以上です

まとめ

いかがでしたでしょうか。本記事では、Pythonでパス文字列からファイル名のみを取得する方法について紹介しています。ぜひ参考にしてみてください