ファイルパスからファイル名、拡張子、フォルダ名などを取得するには、os.pathモジュールを用います。
まずは、サンプルを参照ください。
import os
filepath = r"C:\temp\Image.bmp"
# ファイル名 os.path.basename()
print(os.path.basename(filepath)) # 'Image.bmp'
# フォルダ名 os.path.dirname()
print(os.path.dirname(filepath)) # 'C:\temp'
# 拡張子の取得 os.path.splitext()
print(os.path.splitext(filepath)[1]) # '.bmp'
# 拡張子なしのパス os.path.splitext()
print(os.path.splitext(filepath)[0]) # 'C:\temp\Image'
# 拡張子なしのファイル名 os.path.basename(), os.path.splitext()
print(os.path.splitext(os.path.basename(filepath))[0]) # 'Image'
# ルートディレクトリ os.path.splitdrive()
print(os.path.splitdrive(filepath)[0]) # 'C:'
実行結果
使用した関数の説明は以下の通りです。
os.path.basename(path)
パス名(path)から最後の’\’以降のファイル名を返します。
(例)
入力path | 戻り値 |
C:\temp\Images\Image01.bmp | Image01.bmp |
C:\temp\Images | Images |
os.path.dirname(path)
パス名(path)のディレクトリ名を返します。
(例)
入力path | 戻り値 |
C:\temp\Images\Image01.bmp | C:\temp\Images |
C:\temp\Images | C:\temp |
os.path.splitext(path)
パス名(path)を (拡張子以外, 拡張子)のタプルを返します。
(例)
入力path | 戻り値 |
C:\temp\Images\Image01.bmp | (‘C:\\temp\\Images\\Image01’, ‘.bmp’) |
C:\temp\Images | (‘C:\\temp\\Images’, ”) |
os.path.splitdrive(path)
パス名(path)を (ルートディレクトリ, それ以外)のタプルを返します。
(例)
入力path | 戻り値 |
C:\temp\Images\Image01.bmp | (‘C:’, ‘\\temp\\Images\\Image01.bmp’) |
C:\temp\Images | (‘C:’, ‘\\temp\\Images’) |
参考
https://docs.python.org/ja/3/library/os.path.html