
Pythonでファイル操作を行う際に、ファイルやフォルダが存在するかどうかを確認したい場面は多くあります。
そのときに便利なのが os.path.exists()
というメソッドです。
この記事では os.path.exists()
の基本的な使い方から、引数の意味、活用シーン、注意点までをわかりやすく丁寧に解説します。
os.path.exists() とは?
os.path.exists()
は、指定したパス(ファイルやディレクトリ)が存在するかどうかをチェックするための関数です。
標準ライブラリの os.path
モジュールに含まれており、追加のインストール不要で使えます。
戻り値は True
(存在する)または False
(存在しない)になります。
基本的な使い方
まずは、ファイルの存在をチェックする基本的なコードを見てみましょう。
1 2 3 4 5 6 7 8 9 |
import os file_path = "data.csv" if os.path.exists(file_path): print("ファイルが存在します") else: print("ファイルが存在しません") |
このコードでやっていることは:
file_path
に対象のファイル名(パス)を指定os.path.exists(file_path)
でそのファイルが存在するかを確認- 結果に応じてメッセージを出力
また、os.path.exists()
はファイルだけでなく、ディレクトリの存在確認にも使えます。
具体例:ディレクトリの存在確認
ファイルだけでなく、フォルダ(ディレクトリ)の存在確認にも os.path.exists()
は使えます。
たとえば、指定したパスにフォルダが存在するかを判定するには以下のように書きます。
1 2 3 4 5 6 7 |
folder_path = "/Users/test/Documents/my_folder" if os.path.exists(folder_path): print("フォルダが見つかりました") else: print("フォルダが存在しません") |
このコードを実行すると、folder_path
で指定したフォルダが存在する場合は「フォルダが見つかりました」と表示されます。
ファイルとまったく同じ書き方で確認できるのがポイントです。
os.path.exists() の引数と意味
os.path.exists()
を使うときは、確認したいパス(ファイルやディレクトリ)を引数として渡すだけです。
指定されたパスが存在するかどうかを判定します。
引数名 | 説明 |
---|---|
path | 存在確認したいファイルまたはディレクトリのパス(文字列) |
通常は文字列でファイル名や絶対パス・相対パスを渡します。
ファイルかディレクトリかを区別せず、存在すれば True
を返します。
os.path.exists() の戻り値
関数の戻り値は、指定されたパスが存在するかどうかを表す 真偽値(Boolean) です。
戻り値 | 意味 |
---|---|
True |
指定されたパスが存在する |
False |
指定されたパスが存在しない |
ファイルでもフォルダでも、存在すれば必ず True
が返るため、どちらかを区別せずにシンプルに使えるのが特徴です。
活用シーン
os.path.exists()
は以下のような場面で活躍します。
- ファイル読み込み前に存在確認(例:CSV読み込み)
- 上書き防止のため、事前に存在チェック
- 設定ファイルやログファイルの有無を確認
- 初回起動時にディレクトリがなければ作成する処理
1 2 3 |
if not os.path.exists("logs"): os.mkdir("logs") |
注意点:シンボリックリンクやアクセス権に注意
os.path.exists()
は非常に便利ですが、いくつか注意すべき点があります。
- 存在=読み取り可能とは限らない
os.path.exists()
はパスの存在だけを確認する関数です。
そのため、たとえTrue
が返っても、読み取り可能かどうかは別問題です。
実際にファイルを開く処理(open()
など)では、try-except
を使って補強するのが安全です。 - 壊れたシンボリックリンクには False を返す
リンク先が削除されているなど、リンク切れ状態のシンボリックリンクに対してはFalse
を返します。
シンボリックリンクの存在そのものを確認したい場合はos.path.lexists()
を使う方法もあります。 - アクセス権限がない場合も False になることがある
ファイルやフォルダが実際には存在していても、アクセス権限が不足している場合は、os.path.exists()
はFalse
を返すことがあります。
特に共有ディレクトリや他ユーザーの領域などでは注意が必要です。
これらの点を理解しておけば、os.path.exists()
をより安全・確実に使えるようになります。
まとめ
今回は os.path.exists()
について紹介しました。
os.path.exists()
は、ファイルやフォルダの存在確認を行うための関数- 戻り値は
True
またはFalse
- ファイル・ディレクトリどちらにも使える
- 存在確認してからの条件分岐に便利
- 読み取り可否やアクセス権には注意が必要
ファイル処理を安全に行うための基本テクニックとして、ぜひ使いこなしておきましょう!