【Python】ファイル・ディレクトリが存在するかどうか判定する方法を紹介!「os.path.exists」etc…

こんにちは!

皆さんは、ファイル・ディレクトリが存在するかどうか判定したいと思ったことはありませんか?

Python初心者
ディレクトリを削除した時に確認のために判定したいと思った!

ファイルが存在するかどうかの判定には「os.path.isfile()」、ディレクトリが存在するかどうかの判定には「os.path.isdir()」、また両方同様に判定するには「os.path.exists()」を使うと簡単に判定することができます。

今回の記事では、以下の内容について紹介します。

  • ファイル・ディレクトリが存在するかの判定方法
  • ファイルが存在するかの判定方法
  • ディレクトリが存在するかの判定方法

ファイル・ディレクトリが存在するかの判定

ファイル・ディレクトリが存在するかどうかを同様に判定するには、「os.path.exists()」を使用します。

os.path.exists(判定したいもののpath)

指定したpathのファイル・ディレクトリが存在すればTrue 、存在しなければFalseを返します。

今回は以下のコードで作成したディレクトリ・ファイルの判定を行います。

ファイル・ディレクトリの作成方法ファイル・ディレクトリの一覧取得方法も一緒に確認しましょう。

ソースコード

import os

os.makedirs('testdir/test', exist_ok=True)

with open('testdir/test.txt', 'w') as f:
    f.write('')

print(os.listdir('testdir'))

実行結果

['test', 'test.txt']

「test」がディレクトリ、「test.txt」がファイルなため、これらを判定していきます。

では早速ファイル・ディレクトリが存在するかどうか判定するソースコードを見てみましょう。

ソースコード

import os

print(os.path.exists("testdir/test"))
print(os.path.exists("testdir/test.txt"))
print(os.path.exists("testdir/notexist.txt"))

実行結果

True
True
False

test, test.txtは存在しているのでTruenotexistは存在していないのでFalseといった感じで、しっかりと判別できていますね!

ファイルが存在するかの判定方法

ファイルが存在するかどうかを判定するには、「os.path.isfile()」を使用します。

os.path.isfile(判定したいもののpath)

また、pathに指定したものが、ファイルかどうかの判定にも使われます。

ソースコード

import os

print(os.path.isfile("testdir/test"))
print(os.path.isfile("testdir/test.txt"))
print(os.path.isfile("testdir/notexist.txt"))

実行結果

False
True
False

test.txtのみがファイルなので、Trueとなっています。

ディレクトリが存在するかの判定方法

ディレクトリが存在するかどうかを判定するには、「os.path.isdir()」を使用します。

os.path.isdir(判定したいもののpath)

また、pathに指定したものが、ディレクトリかどうかの判定にも使われます。

ソースコード

import os

print(os.path.isdir("testdir/test"))
print(os.path.isdir("testdir/test.txt"))
print(os.path.isdir("testdir/notexist.txt"))

実行結果

True
False
False

testのみがディレクトリなので、Trueとなっています。

まとめ

今回の記事では、以下の内容について紹介しました。

  • ファイル・ディレクトリが存在するかの判定方法
    「os.path.exists()」を使用
  • ファイルが存在するかの判定方法
    「os.path.isfile()」を使用
  • ディレクトリが存在するかの判定方法
    「os.path.isdir()」を使用
Python初心者
これでファイル・ディレクトリの判別方法が理解できたね!

しっかりと理解して、ファイル・ディレクトリの判別ができるようになりましょう!