カテゴリ: 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
Flask
Flask×Flask-SocketIOでチャットアプリを作る流れを初心者向けにやさしく解説
New3
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
New4
Flask
Flask-WTFでファイルアップロードフォームを完全ガイド!初心者でもわかる画像やPDFのアップロード方法
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本
No.8
Java&Spring記事人気No8
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説