Categories: Python

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

この記事では、Pythonでファイルやディレクトリが存在するか判定する方法を解説します。

ファイルやディレクトリの存在確認をするには、os.pathモジュールの以下の関数を使います。

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

変数の存在確認がしたい場合は以下の記事を参照してください。

変数の存在確認をする方法

それでは、ファイルやディレクトリの存在確認をする方法を見ていきましょう!

ファイルの存在確認

ファイルの存在確認をするには、os.path.isfile()関数を使います。

import os

os.path.isfile(path)

path引数に指定したパスのファイルが存在していればTrue、存在していなければFalseが返されます。パスは絶対パスと相対パスのどちらも指定可能です。

サンプル

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

import os

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

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

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

ディレクトリの存在確認

ディレクトリの存在確認をするには、os.path.isdir()関数を使います。

import os

os.path.isdir(path)

引数に指定したパスのディレクトリが存在していればTrue、存在していなければFalseが返されます。パスは絶対パスと相対パスのどちらも指定可能です。

サンプル

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

import os

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

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

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

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

ファイル、またはディレクトリの存在確認をするには、os.path.exists()関数を使います。

import os

os.path.exists(path)

path引数に指定したパスのファイル・ディレクトリが存在していればTrue、存在していなければFalseが返されます。パスは絶対パスと相対パスのどちらも指定可能です。

サンプル

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

import os

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


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


# 存在しないディレクトリやファイルを指定するとFalse
print(os.path.exists('noname'))      # False
print(os.path.exists('noname.txt'))  # 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モジュールの関数を呼び出すだけで簡単に実装することができました。ありがたいですね!

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

ゆうまる

独学でプログラミングを勉強しているおじさん。いろんな言語を勉強したが浅く広くなためあまり仕事につながらない。また忘れっぽいため自分のブログを備忘録としても使っている。産まれてこのかたずっとネコを飼ってる生粋のネコ派。最近お腹が出てきて筋トレに奮闘中!

Recent Posts

【Dart】コンストラクタのデフォルト引数について

Dartのコンストラクタのデフォルト引数…

2週間 ago

【Unity】有料アセットを無料で手に入れる方法

この記事では、Unityの有料アセットを…

5か月 ago

【Python】任意の秒数だけ処理を一時停止する方法【sleep()関数】

この記事では、Pythonで任意の秒数だ…

1年 ago

【Python】Wordの文書の新規作成と読み書き

この記事では、Pythonを使ってWor…

1年 ago

【Python】メタクラスって結局なんなの?

この記事では、Pythonのメタクラスに…

1年 ago