1. os.path.basename()とは?
Pythonのos.path.basename()
は、指定されたファイルパスから「ファイル名」部分を取得する関数です。例えば、「/home/user/documents/file.txt」といったパスを与えると、os.path.basename()
は「file.txt」を返します。この関数は、異なるOSでも動作するクロスプラットフォーム対応のファイル操作ツールとして、さまざまな場面で活用できます。
os.path.basename()の概要
os.path.basename()は、os
モジュールの関数であり、ファイルパスの最後の要素(通常はファイル名)を取り出すことができます。この機能により、フルパスを利用しつつ、ファイル名だけを取得したいときに重宝します。
基本的な使用例
import os
file_path = "/home/user/documents/report.pdf"
file_name = os.path.basename(file_path)
print(file_name) # 出力: report.pdf
このコードでは、指定されたファイルパスから「report.pdf」というファイル名を抽出しています。Python初心者からプロフェッショナルまで、多くの場面で利用されています。
2. os.path.basename()の使い方
ここからは、os.path.basename()
を実際にどう使うか、よくある使用パターンについて解説します。
ファイルパスからファイル名を取得する方法
os.path.basename()
にフルパスを渡すと、パスの末尾にあるファイル名を返します。拡張子も含めてファイル名が取得できるため、そのままファイル名を表示したり、他の処理に利用できます。
サンプルコード
import os
file_path = "/home/user/documents/report.pdf"
file_name = os.path.basename(file_path)
print(file_name) # 出力: report.pdf
ディレクトリパスからディレクトリ名を取得する方法
ファイルパスではなく、ディレクトリパスをos.path.basename()
に渡すと、最終要素であるディレクトリ名が返されます。以下の例では、「/home/user/documents/」から「documents」が返されます。
サンプルコード
import os
dir_path = "/home/user/documents/"
directory_name = os.path.basename(dir_path)
print(directory_name) # 出力: documents
拡張子を含むファイル名の取得
os.path.basename()
は、ファイルの拡張子も含んだファイル名を返します。拡張子の有無を確認せずにファイル名を取得できるため、シンプルで実用的です。
サンプルコード
import os
file_path = "/path/to/data/file.csv"
file_name_with_extension = os.path.basename(file_path)
print(file_name_with_extension) # 出力: file.csv

3. os.path.basename()と他の関連関数の違いを理解しよう
os.path
モジュールには、basename()
以外にもパス操作に便利な関数がいくつかあります。以下で、よく使われるos.path.dirname()
、os.path.split()
、os.path.splitext()
と比較してみましょう。
os.path.dirname()との違い
os.path.dirname()
はディレクトリパスを取得するのに対し、os.path.basename()
はファイル名を取得します。
os.path.split()との違い
os.path.split()
はディレクトリパスとファイル名を同時に取得できます。
os.path.splitext()との組み合わせ
os.path.splitext()
を使うと、ファイル名から拡張子を簡単に取り除くことができます。
4. pathlibでファイル名取得をもっと簡単に
Python 3.4以降では、ファイルパス操作のためのpathlib
モジュールが標準化されました。os.path
よりも直感的で、特に可読性が重視されるプロジェクトには非常に便利です。
pathlib.Path.nameの使い方
from pathlib import Path
file_path = Path("/home/user/documents/report.pdf")
print(file_path.name) # 出力: report.pdf
pathlib.Path.name
を使うと、ファイル名が簡単に取得でき、basename()
と同等の操作をオブジェクト指向的に行えます。

5. 実際の使用例
実際のプロジェクトでos.path.basename()
がどのように活用されているのか、以下の例で確認してみましょう。
ファイル名のリネーム
import os
directory = "/path/to/files"
new_prefix = "new_file"
for index, filename in enumerate(os.listdir(directory)):
old_file = os.path.join(directory, filename)
if os.path.isfile(old_file):
new_file_name = f"{new_prefix}_{index}{os.path.splitext(filename)[1]}"
new_file = os.path.join(directory, new_file_name)
os.rename(old_file, new_file)
6. 注意点とベストプラクティス
os.path.basename()
を使用する際には、OSごとのパス区切り文字の違いや、pathlib
との併用など、以下の注意点に気をつけましょう。
- クロスプラットフォーム対応のために
os.path.join()
やpathlib.Path()
を使用する - ファイルの実在確認は
os.path.exists()
やos.path.isfile()
で行う
7. まとめ
os.path.basename()
は、Pythonでファイルパスからファイル名を取得する際に非常に便利な関数です。この記事では、basename()
の基本的な使い方から、関連する関数やpathlib
との違いまでを詳しく解説しました。
- ファイル名の取得からクロスプラットフォーム対応まで、さまざまな実践的な場面で役立つことが理解できたと思います。
- 次のステップとして、他の
os.path
関数やpathlib
の使用も検討してみてください。ファイル操作がさらに便利になります。