ファイルがあるか、確認する方法
os.path.isfile()メソッドの引数に確認したいファイルのパスを渡します。ファイルがあれば True を返し、それ以外は False を返します。os.path.isfile の使用方法
import os
結果(True or False) = os.path.isfile('ファイルパス')
- 引数に渡したファイルがあると True、それ以外は False を返します。
- フォルダ(ディレクトリ)の場合、存在していても False を返します。フォルダがあるか確認するには「os.path.isdir」を使用します。
- シンボリックリンクの場合、リンク先を辿って判定します。シンボリックリンクかを確認するには「os.path.islink」を使用します。(Windowsのショートカットの場合、リンク先ファイルがあっても False を返します。)
- Pythonバージョン3.6から、引数に文字列以外にも path-like object(pathlibなど) を渡せるようになりました。
- Pythonバージョン3.8から、無効なパスを渡すと例外ではなく False を返すようになりました。
サンプルコード1
次のサンプルコードは、ファイル「test.txt」があるか確認しています。import os
# ファイルがあるか判定
filePath = './test.txt'
result = os.path.isfile(filePath)
if result:
print(f'ファイル{filePath}は存在します。')
else:
print(f'ファイル{filePath}は存在しません。')
サンプルコード2
フォルダ(ディレクトリ)やショートカット(Windows)の有無を確認しようとしています。import os
# ファイルがある場合、True を返す
filePath = './test.txt'
result = os.path.isfile(filePath)
if result:
print(f'ファイル「{filePath}」は存在します。')
else:
print(f'ファイル「{filePath}」は存在しません。')
# ディレクトリの場合、存在していも False を返す
filePath = './test-dir'
result = os.path.isfile(filePath)
if result:
print(f'ファイル「{filePath}」は存在します。')
else:
print(f'ファイル「{filePath}」は存在しません。')
# ショートカット(Windows)の場合、リンク先があっても False を返す
filePath = './test.txt - ショートカット'
result = os.path.isfile(filePath)
if result:
print(f'ファイル「{filePath}」は存在します。')
else:
print(f'ファイル「{filePath}」は存在しません。')


検証環境
- Python 3.11.0 (main, Oct 24 2022, 18:26:48) [MSC v.1933 64 bit (AMD64)] on win32
- Microsoft Windows 10 Pro Version 21H2 OS Build 19044.2130 Experience: Windows Feature Experience Pack 120.2212.4180.0