Python

【Python】任意のファイルやディレクトリが存在するか判定する

この記事では、Pythonで任意のファイルやディレクトリが存在するか判定する方法を解説します。ファイル・ディレクトリの存在確認をするには、os.pathモジュールの以下の3つの関数を使います。

os.path.isfile() ファイルの存在確認
os.path.isdir() ディレクトリの存在確認
os.path.exists() ファイル・ディレクトリの存在確認

それではもう少し詳しく使い方を見ていきましょう!

ファイルの存在確認

任意のファイルが存在しているかどうか確認するには、os.pathモジュールのisfile()関数を使います。引数に指定したパスのファイルが存在していればTrue、存在していなければFalseが返されます。パスは絶対パスと相対パスのどちらも指定可能です。

import os

os.path.isfile(path)

サンプル

例えば同じディレクトリ内に格納されている「test.txt」を存在確認してみます。

import os

# 同じディレクトリ内のtest.txtの検索
print(os.path.isfile('test.txt'))

# 絶対パスでも指定できる
abspath = os.path.abspath('test.txt')
print(f'絶対パス: {abspath}')
print(os.path.isfile(abspath))

# もちろん存在しないファイルやディレクトリを指定するとFalse
print(os.path.isfile('test'))

実行結果

True
絶対パス: /Users/user/Desktop/Python/test.txt
True
False

ディレクトリの存在確認

任意のディレクトリが存在しているかどうか確認するには、os.pathモジュールのisdir()関数を使います。引数に指定したパスのディレクトリが存在していればTrue、存在していなければFalseが返されます。パスは絶対パスと相対パスのどちらも指定可能です。

import os

os.path.isdir(path)

サンプル

例えば同じディレクトリ内に格納されている「testディレクトリ」を存在確認してみます。

import os

# 同じディレクトリ内のtestディレクトリの検索
print(os.path.isdir('test'))

# 絶対パスでも指定できる
abspath = os.path.abspath('test')
print(os.path.isdir(abspath))

# もちろん存在しないディレクトリやファイルを指定するとFalse
print(os.path.isdir('test.txt'))

実行結果

True
True
False

ファイル・ディレクトリの存在確認

任意のファイル・ディレクトリが存在しているかどうか確認するには、os.pathモジュールのexists()関数を使います。引数に指定したパスのファイル・ディレクトリが存在していればTrue、存在していなければFalseが返されます。パスは絶対パスと相対パスのどちらも指定可能です。

import os

os.path.exists(path)

サンプル

例えば同じディレクトリ内に格納されている「test.txt」と「testディレクトリ」を存在確認してみます。

import os

# 同じディレクトリ内のtestディレクトリとtest.txtの検索
print(os.path.exists('test'))
print(os.path.exists('test.txt'))

print('-'*20)

# 絶対パスでも指定できる
abspath = os.path.abspath('test')
print(os.path.exists(abspath))
print(os.path.exists(abspath + '.txt'))

print('-'*20)

# 存在しないディレクトリやファイルを指定するとFalse
print(os.path.exists('noname'))
print(os.path.exists('noname.txt'))

実行結果

True
True
--------------------
True
True
--------------------
False
False

ちょこっと実践的な例

if文と組み合わせることで、ファイル・ディレクトリが存在している場合の処理を定義することができます。以下のコードは、指定したファイルが存在していれば読み込み中身を出力し、ファイルが存在していなければ新しく空のファイルを生成します。

import os

if os.path.isfile('test.txt'):
    with open('test.txt', 'r') as f:
        print(f.read(), end='')
else:
    with open('test.txt', 'w'):
        pass

まとめ

この記事では、コード内から任意のファイルやディレクトリが存在するかどうかを調べる方法を解説しました。

Pythonはライブラリが充実しているので、osモジュールの関数を呼び出すだけで簡単に実装することができました! ありがたいですね☺️

それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ

最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』