Python

【Python】ファイルやディレクトリが存在するか確認する

MAX

既存のファイルをオープンする前には存在チェックが必要。

ユーザー任せで新しいファイルやディレクトリを作成する場合も、名前が適切かチェックが必要。

開く前に存在チェックしなくてもエラー時に対処することもできるが・・・。

スポンサーリンク

ファイルの存在チェック

ファイルまたはディレクトリの存在チェックは以下の通り。

1import os
2from pathlib import Path
3
4path_name = "./test/test.csv"
5
6os.path.exists(path_name)
7# True or False
8
9path = Path(path_name)
10path.exists()
11# True or False

ファイルやディレクトリが存在する場合、Trueが返ってくる。

存在しない場合はFalseが返ってくる。

ディレクトリかどうかチェック

ディレクトリかどうかをチェックしたい場合は以下の通り。

1import os
2from pathlib import Path
3path_name = "./test/test.csv"
4
5os.path.isdir(path_name)
6# False
7path = Path(path_name)
8path.is_dir()
9# False
10
11# 存在しないディレクトリの場合、ファイルでなくディレクトリ名だったとしてもFalseが返ってくるので注意
12path_name = "./test1/test2"
13os.path.isdir(path_name)
14# True
15path = Path(path_name)
16path.is_dir()
17# True
18

上記の例だと、「test.csv」はファイルなので、Falseが返ってくる。

引数が「ディレクトリ」の形式(拡張子なし)であっても、実際にそのディレクトリが存在しない場合はFalseが返ってくる。

ファイルかどうかをチェック

ファイルかどうかをチェックしたい場合は以下の通り。

1import os
2from pathlib import Path
3
4# 拡張子の存在するファイル名だったとしても、ファイルが存在しない場合はFalseが返ってくることに注意。
5path_name = "./test/test.csv"
6os.path.isfile(path_name)
7# True
8path = Path(path_name)
9path.is_file()
10# True
11
12path_name = "./test1/test2"
13os.path.isfile(path_name)
14# False
15path = Path(path_name)
16path.is_file()
17# False

上記の例だと、test.csvはファイルなので、Trueが返ってくる。

isdirと同じで、引数が「.拡張子」の形になっていても、実際には存在しないファイルの場合はFalseが返ってくる。

isdir、isfile共に、ファイルやディレクトリを新しく作成したい時に、形式が合っているかのチェックに使える。

この他にも拡張子のチェックなどがよくやる処理。

あわせて読みたい
【Python】ファイルパスからファイル名や拡張子を取得する
【Python】ファイルパスからファイル名や拡張子を取得する

スポンサーリンク
ABOUT ME
MAX
MAX
ITエンジニア、データサイエンティスト
新卒でSIerに入社し、フリーランスになってWEB系へ転向。
その後AIの世界へ足を踏み入れ、正社員に戻る。 テーブルデータの分析がメイン。
スポンサーリンク
記事URLをコピーしました