環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Pythonで指定したパスがファイルかディレクトリか調べる(os.path.isfileまたはPath.is_fileを使う)

最終更新日 2022.11.20

Python でパスがファイルかディレクトリかを判別するときは isfile または isdir を使います。今回も下図のプロジェクトで、実行ファイルは c.py です。

import os

p = './test.csv'

f = os.path.isfile(p)
d = os.path.isdir(p)

print(f)  # True
print(d)  # False
import os

p = './root'

f = os.path.isfile(p)
d = os.path.isdir(p)

print(f)  # False
print(d)  # True

isfile はパスがファイルかどうかをチェックします。isdir はパスがディレクトリかどうかを判定します。

Path を使う方法

os.path よりも便利な Path では次のようにファイル/ディレクトリを判定します。

from pathlib import Path

p = Path('./root')

f = Path.is_file(p)
d = Path.is_dir(p)

print(f)  # False
print(d)  # True

まずパスを Path に入れて Path オブジェクトを作ります。それを is_file または is_dir に入れて判定します。os.path では isfile でしたが、Path では is_file となっています。

パスが存在しなかったときは is_file も is_dir も False を返します。

from pathlib import Path

p = Path('./aaaaaaa')

f = Path.is_file(p)
d = Path.is_dir(p)

print(f)  # False
print(d)  # False

パスの存在をチェックする必要はないでしょう。