Pythonでファイルやディレクトリの存在を確認する:os.path.exists, isfile, isdirの使い分け

ファイル操作を行う前に、「そのファイルが本当にそこにあるか」を確認することは、エラー(FileNotFoundError)を防ぐために非常に重要です。

Pythonの標準ライブラリ os.path モジュールには、存在確認を行うための関数がいくつか用意されています。単に「存在するか」を知りたい場合や、「ファイルなのかディレクトリなのか」まで区別したい場合など、目的に応じて使い分ける必要があります。

この記事では、os.path.exists(), os.path.isfile(), os.path.isdir() の3つの関数の使い方について解説します。

目次

1. 存在を確認する: os.path.exists()

os.path.exists() は、指定されたパスが**「ファイル」または「ディレクトリ(フォルダ)」として存在するかどうか**を確認します。どちらであっても存在すれば True を返します。

構文:

import os

存在するか = os.path.exists(パス)

具体的な使用例

設定ファイルが存在するかどうかを確認する例です。

import os

# 確認したいファイルのパス
config_path = "settings.yaml"

if os.path.exists(config_path):
    print(f"確認完了: '{config_path}' は存在します。")
else:
    print(f"エラー: '{config_path}' が見つかりません。")

実行結果(ファイルがない場合):

エラー: 'settings.yaml' が見つかりません。

2. 「ファイル」であることを確認する: os.path.isfile()

os.path.isfile() は、指定されたパスが存在し、かつそれが**「ファイル」である場合のみ** True を返します。ディレクトリだった場合は False になります。

ログファイルへの書き込み前など、対象が確実にファイルであることを保証したい場合に使用します。

import os

target_path = "app_data"

# ファイルかどうかを厳密にチェック
if os.path.isfile(target_path):
    print(f"'{target_path}' はファイルです。処理を続行します。")
elif os.path.isdir(target_path):
    print(f"'{target_path}' はディレクトリです。ファイルではありません。")
else:
    print(f"'{target_path}' は存在しません。")

3. 「ディレクトリ」であることを確認する: os.path.isdir()

os.path.isdir() は、指定されたパスが存在し、かつそれが**「ディレクトリ」である場合のみ** True を返します。ファイルだった場合は False になります。

保存先のフォルダが存在するかを確認し、なければ作成するといった処理でよく使われます。

import os

# 保存先ディレクトリ
output_dir = "backup_folder"

if not os.path.isdir(output_dir):
    print(f"ディレクトリ '{output_dir}' が存在しないため、新規作成します。")
    os.makedirs(output_dir)
else:
    print(f"ディレクトリ '{output_dir}' は既に存在します。")

まとめ

  • os.path.exists(path): ファイルかディレクトリかに関わらず、とにかく存在するかを知りたい場合に使用します。
  • os.path.isfile(path): それがファイルであることを確認したい場合に使用します。
  • os.path.isdir(path): それがディレクトリであることを確認したい場合に使用します。

用途に合わせてこれらを使い分けることで、より堅牢なファイル操作処理を記述できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次