ファイルやディレクトリの存在を確認する

ファイルを読み込んだりコピーしたりするなどの処理を行う前にファイルが実際に存在しているかどうか確認が必要な場合があります。ここでは Python の os モジュールで用意されている os.path.exists 関数を使って指定したパスが示すファイルまたはディレクトリが実際に存在するかどうかを確認する方法について解説します。

※ pathlib モジュールを使ってファイルやディレクトリが実際に存在するかどうかを確認するには「ファイルやディレクトリの存在を確認する(pathlibモジュール)」を参照されてください。

(Last modified: )

ファイルやディレクトリの存在を確認する

指定したパスが示すファイルまたはディレクトリが存在するかどうかを調べるには os.path モジュールで用意されている exists 関数を使用します。

os.path.exists(path)

引数に指定したパスが実際に存在している場合に True を返します。

例えば次のように記述します。

import os

path = './test/img/'
print(os.path.exists(path))
>> True

path = './test/address.txt'
print(os.path.exists(path))
>> True

exists 関数は引数に指定したパスがファイルであってもディレクトリであっても実際に存在すれば True を返します。

※ パスがファイルかディレクトリなのかを判別するには「ファイルかディレクトリなのかを調べる」を参照されてください。

サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 sample7-1.py という名前で保存します。

import os
import pathlib

path1 = './test/address.txt'
if os.path.exists(path1) :
  print(path1 + 'は存在します')
else :
  print(path1 + 'は存在しません')

path2 = './test/user.txt'
if os.path.exists(path2) :
  print(path2 + 'は存在します')
else :
  print(path2 + 'は存在しません')

path3 = './test/img'
if os.path.exists(path3) :
  print(path3 + 'は存在します')
else :
  print(path3 + 'は存在しません')

プログラムと同じディレクトリの中に test という名前のディレクトリがあり、 test ディレクトリの中に次のようにファイルとディレクトリが含まれています。

ファイルやディレクトリの存在を確認する(1)

その後で、次のように実行してください。

python sample7-1.py

ファイルやディレクトリの存在を確認する(2)

3 つのパスを指定し、それぞれ存在するかどうかを確認しました。

-- --

Pythonを使って指定したパスが示すファイルまたはディレクトリが実際に存在するかどうかを確認する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。