注目キーワード

【Python】ファイル・フォルダの存在をチェックする方法

はじめに

Pythonに限らず、プログラム開発でファイルを操作するときは対象ファイルが存在するか確認しないとシステムエラーが起きます。そのために、ファイルの存在チェックを行うことが良くあります。この記事では、ファイルおよび、フォルダの存在のチェック方法をサンプルプログラムを使いながら説明していきます。

対象レベル

Pythonの環境設定が整っており、Pythonの基本構文が理解出来ること。

詳しくは「【Python入門】〜初級編〜環境構築・基本構文まとめ」にまとめてあります。興味のある方はご覧ください。

前提条件

この記事では、以下のファイルとフォルダを対象に存在チェックを行います。

ファイル名・フォルダ名タイプ存在の有無
testフォルダ存在する
test1.txtファイル存在する
aaaフォルダ想定存在しない
bbb.txtファイル想定存在しない

実装と実行をするまえにフォルダの確認を行います。確認をすると、「test」というフォルダと「test1.txt」というファイルが存在することが分かります。

実行前のフォルダの状態

ファイルまたはフォルダの存在を確認する(exists)

まず初めに、「exist」を使います。こちらのメソッドはファイルのパスが正しければファイルでもフォルダでも「True」を返します。

使い方は以下の通りで「exists」のカッコの中にファイル名または、フォルダ名を指定します。

プログラムの6行目が該当の処理です。後述のサンプルファイルも6行目を「isfile」、「isdir」に変更しているだけで他の処理は同じにしています。

import osos.path.exists(ファイル名または、フォルダ名)

それでは、実行してみます。1番目と2番目は実際に存在するパスなので「True」が返されています。

3番目と4番目の出力ではパスが不正なので「False」が返されています。

sample_exists.pyを実行

ファイルの存在を確認する(isfile)

次は「isfile」についてです。こちらのメソッドは「 パスが正しいこと 」かつ「 ファイルであること 」の条件を満たした場合に「True」を返します。使い方は以下の通りです。

import osos.path.isfile(ファイル名)

使用するパスは前回と同じにしています。この場合だと、先頭から2番目(配列で言うと1番目)の「 test1.txt 」の場合で「True」が出力されます。

実行結果が以下になります。想定通り、「test1.txt」のみ「True」が出力されています。

スポンサーリンク

sample_isfile.pyを実行

フォルダの存在を確認する(isdir)

最後に、フォルダの存在チェック「isdir」について説明します。こちらのメソッドは、 「 パスが正しいこと 」かつ「 フォルダであること 」の条件を満たした場合に「True」を返します。使い方は以下の通りです。

import osos.path.isdir(フォルダ名)

下のサンプルソースでいうと配列の0番目のみ「True」を返す想定になります。

想定通り実行結果をみると0番目が「True」になっています。

sample_isdir.pyを実行

まとめ

パスの検証は「os.path.exists(ファイル名または、フォルダ名)」を使う

ファイルの存在確認は「os.path.isfile(ファイル名)」を使う

フォルダの存在確認は「os.path.isdir(フォルダ名)」を使う