【Python/os】パスからファイル名、拡張子、フォルダ名などを取得する

ファイルパスからファイル名、拡張子、フォルダ名などを取得するには、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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください