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
パスの存在をチェックする必要はないでしょう。