この記事では、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.txt
とtest
ディレクトリを存在確認してみます。
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
モジュールの関数を呼び出すだけで簡単に実装することができました。ありがたいですね!
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ