カテゴリ: Python 更新日: 2025/12/12

Pythonでファイルの存在チェックを行う方法!os.path.exists()の使い方を徹底解説

Pythonでファイルの存在チェックを行う方法(os.path.exists() の使い方)
Pythonでファイルの存在チェックを行う方法(os.path.exists() の使い方)

先生と生徒の会話形式で理解しよう

生徒

「Pythonでファイルを読み込もうとしたら、ファイルが無いってエラーになっちゃいました。どうしたらいいんですか?」

先生

「それは“ファイルの存在チェック”をしていないからですね。Pythonでは、os.path.exists()を使うと、ファイルが存在するかどうかを簡単に調べられますよ。」

生徒

「存在チェックって、ファイルがあるかどうかを確かめることですよね?それってどうやるんですか?」

先生

「では、実際にPythonのコードを使って、ファイルの存在を調べる方法を見てみましょう!」

1. ファイルの存在チェックとは?

1. ファイルの存在チェックとは?
1. ファイルの存在チェックとは?

「ファイルの存在チェック」とは、その名の通り、指定した場所にファイルがあるかどうかを確認する処理のことです。例えば、Pythonのプログラムでファイルを開こうとしたとき、そのファイルが存在しなければエラーが発生してしまいます。

現実の例で言えば、机の引き出しを開ける前に「その引き出しの中にノートがあるか確認する」といった感じです。ノート(ファイル)が無ければ、探すだけ無駄ですし、開けても意味がありません。プログラムも同じで、存在しないファイルを開こうとするとエラーになります。

そのため、ファイルを使う前には必ず「ファイルがあるかどうか」を確認するのが安全です。

2. os.path.exists()とは?

2. os.path.exists()とは?
2. os.path.exists()とは?

os.path.exists()は、Pythonの標準ライブラリであるosモジュールに含まれる関数です。この関数は、指定したパス(ファイルやフォルダの場所)が存在するかどうかを調べるために使われます。

返り値(関数が返す結果)はとてもシンプルで、存在すればTrue、存在しなければFalseを返します。つまり、「はい」「いいえ」を判断する関数だと思えば分かりやすいです。

このos.path.exists()を使うことで、ファイルの有無を安全にチェックして、エラーを防ぐことができます。

3. os.path.exists()の基本的な使い方

3. os.path.exists()の基本的な使い方
3. os.path.exists()の基本的な使い方

それでは、基本的な使い方を見てみましょう。


import os

if os.path.exists("data.txt"):
    print("ファイルが存在します。")
else:
    print("ファイルが見つかりません。")

ファイルが存在します。

このように書くだけで、ファイルがあるかどうかを簡単に確認できます。もしdata.txtというファイルが同じフォルダにあれば「ファイルが存在します。」と表示され、無ければ「ファイルが見つかりません。」と出力されます。

4. フォルダの存在チェックもできる

4. フォルダの存在チェックもできる
4. フォルダの存在チェックもできる

os.path.exists()は、実はファイルだけでなくフォルダの存在確認にも使えます。つまり、「ファイルまたはフォルダ」が存在するかどうかを調べられる万能な関数です。


import os

if os.path.exists("images"):
    print("フォルダが存在します。")
else:
    print("フォルダが存在しません。")

フォルダが存在します。

このように書くと、「images」というフォルダがあるかどうかを調べて結果を表示します。Pythonでは、ファイルもフォルダも“パス”という形で扱えるため、同じ関数で確認できるのです。

5. ファイルだけをチェックしたいとき

5. ファイルだけをチェックしたいとき
5. ファイルだけをチェックしたいとき

ときには「ファイルだけを確認したい」「フォルダは除外したい」という場合もあります。そのときは、os.path.isfile()を使います。名前の通り、“is file”(ファイルですか?)を判定します。


import os

if os.path.isfile("data.txt"):
    print("これはファイルです。")
else:
    print("これはファイルではありません。")

これはファイルです。

これで、「ファイルなのか」「フォルダなのか」を区別できます。同様に、フォルダだけを調べたい場合はos.path.isdir()を使います。


import os

if os.path.isdir("images"):
    print("これはフォルダです。")
else:
    print("これはフォルダではありません。")

これはフォルダです。

このように、用途に合わせて関数を使い分けるのがポイントです。

6. ファイルを開く前に存在チェックをする理由

6. ファイルを開く前に存在チェックをする理由
6. ファイルを開く前に存在チェックをする理由

初心者の方がよくやってしまうミスのひとつが、「存在しないファイルをopen()で開こうとしてエラーになる」ことです。


file = open("sample.txt", "r")

このコードでsample.txtが存在しなければ、Pythonは「No such file or directory(そんなファイルやフォルダはありません)」というエラーを出します。これを防ぐために、os.path.exists()で事前にチェックしておけば安心です。


import os

if os.path.exists("sample.txt"):
    with open("sample.txt", "r") as f:
        content = f.read()
        print(content)
else:
    print("ファイルが存在しないため、読み込みをスキップしました。")

このように「存在すれば開く、無ければ開かない」という処理を入れることで、エラーを防ぎ、プログラムの信頼性を高められます。

7. パスの指定に注意しよう

7. パスの指定に注意しよう
7. パスの指定に注意しよう

os.path.exists()を使うときに注意したいのが「パスの指定」です。パスとは、ファイルの場所を示す住所のようなもので、指定方法によって結果が変わります。

相対パスは、今のプログラムがある場所を基準にして指定する方法です。たとえば、同じフォルダ内にあるファイルなら"data.txt"のように書けます。

絶対パスは、パソコンのルート(最上位の階層)から全部のフォルダを指定する方法です。例:"C:/Users/Name/Documents/data.txt"

もし「ファイルがあるのに見つからない」と出る場合は、パスが正しく指定できていないことが多いです。そんなときはprint(os.getcwd())で「今どこのフォルダで実行しているか」を確認してみましょう。

8. まとめ:ファイルの存在確認で安全なPythonプログラムを作ろう

8. まとめ:ファイルの存在確認で安全なPythonプログラムを作ろう
8. まとめ:ファイルの存在確認で安全なPythonプログラムを作ろう

os.path.exists()は、Pythonでファイルやフォルダを扱うときに欠かせない基本機能です。これを使えば、存在しないファイルを扱うミスを防ぎ、エラーのない安全なプログラムを書くことができます。

初心者のうちは少し地味に感じるかもしれませんが、実はとても大切な処理です。ファイルを扱うときは「開く前に存在を確認する」を習慣にしておくと、将来もっと複雑なプログラムを書くときにも役立ちます。

カテゴリの一覧へ
新着記事
New1
Django
Djangoバリデーション入門|フォームとモデルの入力チェック基本をやさしく理解しよう
New2
Django
Djangoテンプレートの変数展開まとめ|初心者向けにわかりやすく解説
New3
Django
Django ModelFormの使い方完全ガイド!初心者でもわかる新規登録フォーム作成
New4
Django
Djangoテンプレートの使い方を完全解説!初心者でもわかるタグ・フィルタ入門
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでNoSQL操作!エラーハンドリングを初心者向けに徹底解説
No.2
Java&Spring記事人気No2
Python
PythonのSQLAlchemy使い方入門!初心者でもわかるインストールと初期設定
No.3
Java&Spring記事人気No3
Flask
Flaskで多言語対応のログメッセージを出力する方法!Python初心者向けガイド
No.4
Java&Spring記事人気No4
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.5
Java&Spring記事人気No5
Flask
FlaskでJSONレスポンスを多言語化!API設計の基本を初心者向けに解説
No.6
Java&Spring記事人気No6
Python
PythonのSQLAlchemyでデータベース操作!モデルクラスでテーブル定義する方法を徹底解説
No.7
Java&Spring記事人気No7
Python
PythonでCassandraに接続する方法を完全ガイド!cassandra-driverの使い方
No.8
Java&Spring記事人気No8
Python
PythonでREST APIを作る方法!初心者向けFastAPI入門