Pythonでは、OSに依存せずにパスからファイル名を抽出するために、os.path.basename()pathlibを使用できます。

os.path.basename()を使用する

import os
filename = os.path.basename('/path/to/file.txt')
print(filename)  # 出力: file.txt

この方法はクロスプラットフォームで動作し、ファイル名を正確に抽出できます。

pathlibを使う

Python 3.4以降では、pathlib.Pathも使用可能です。

from pathlib import Path
filename = Path('/path/to/file.txt').name
print(filename)  # 出力: file.txt

拡張子を除く方法

拡張子を除いたファイル名が必要な場合は、os.path.splitext()またはPath().stemを使用します。

# os.path.splitext() の例
file_stem = os.path.splitext(filename)[0]
print(file_stem)  # 出力: file
# Path().stem の例
file_stem = Path('/path/to/file.txt').stem
print(file_stem)  # 出力: file

まとめ

  • os.path.basename()pathlibの両方を使うことで、OSに依存しないパス操作が可能です。
  • 拡張子を除いたファイル名が必要な場合には、splitext()stemを使用します。