note.nkmk.me

Pythonでファイル、ディレクトリ(フォルダ)の存在確認

Date: 2018-04-16 / tags: Python, ファイル操作

Pythonでファイルやディレクトリ(フォルダ)が存在するかどうかを確認する方法を説明する。パス操作のための標準モジュールos.pathを使う。

ファイルやディレクトリの存在の有無を判定して処理内容を切り替える場合などに便利。

以下の内容について説明する。

  • ファイルまたはディレクトリ(フォルダ)の存在確認: os.path.exists()
  • ファイルの存在確認: os.path.isfile()
  • ディレクトリ(フォルダ)の存在確認: os.path.isdir()

いずれの関数も引数としてパス文字列を指定する。

ここでは例として以下の二つのパス文字列を使う。それぞれ存在するファイルおよびディレクトリを示すパス。

import os

filepath = './data/temp/dir/file.txt'
dirpath = './data/temp/dir'

パス文字列の操作については以下の記事を参照。

スポンサーリンク

ファイルまたはディレクトリ(フォルダ)の存在確認: os.path.exists()

パスが存在しているかどうかを確認するにはos.path.exists()を使う。

ファイルでもディレクトリでも、存在していればTrue、存在していなければFalseを返す。

print(os.path.exists(filepath))
# True

print(os.path.exists(dirpath))
# True

ファイルの存在確認: os.path.isfile()

パスが存在しているファイルであるかどうかを確認するにはos.path.isfile()を使う。

ディレクトリ(フォルダ)を示すパスの場合は存在していてもFalseを返す。

print(os.path.isfile(filepath))
# True

print(os.path.isfile(dirpath))
# False

拡張子のないファイル名(Makefileなど)もファイルとして認識して正しく判定してくれる。

ディレクトリ(フォルダ)の存在確認: os.path.isdir()

パスが存在しているディレクトリ(フォルダ)であるかどうかを確認するにはos.path.isdir()を使う。

ファイルを示すパスの場合は存在していてもFalseを返す。

print(os.path.isdir(filepath))
# False

print(os.path.isdir(dirpath))
# True

パス文字列の末尾に区切り文字がついていてもOK。

dirpath_with_sep = './data/temp/dir/'

print(os.path.isfile(dirpath_with_sep))
# False

print(os.path.isdir(dirpath_with_sep))
# True
スポンサーリンク
シェア
このエントリーをはてなブックマークに追加

関連カテゴリー

関連記事