Pythonでファイル・ディレクトリの存在確認をする方法【os.pathとpathlibを完全解説】
Pythonでプログラムを作る際、ファイルやディレクトリ(フォルダ)が存在するかどうかを事前に確認したいケースがよくあります。この記事では、Pythonでファイルやディレクトリの存在確認を行う方法を、サンプルコード付きで詳しく解説します。
ファイルの存在確認方法
os.path.exists()を使った基本的な方法
最も基本的な方法はos.path.exists()関数を使用することです。
import os
# ファイルの存在確認
if os.path.exists('sample.txt'):
print('ファイルが存在します')
else:
print('ファイルが存在しません')
os.path.isfile()でファイル限定チェック
ファイルのみを対象にしたい場合はos.path.isfile()を使用します。
import os
# ファイル限定の存在確認
if os.path.isfile('sample.txt'):
print('ファイルです')
elif os.path.isdir('sample.txt'):
print('ディレクトリです')
else:
print('存在しません')
pathlib(Python 3.4以降推奨)を使った方法
より現代的なアプローチとしてpathlibモジュールを使用できます。
from pathlib import Path
# pathlibでファイル存在確認
file_path = Path('sample.txt')
if file_path.exists():
print('ファイルが存在します')
# ファイル限定チェック
if file_path.is_file():
print('ファイルです')
ディレクトリ(フォルダ)の存在確認方法
os.path.isdir()を使った方法
ディレクトリの存在確認にはos.path.isdir()を使用します。
import os
# ディレクトリの存在確認
if os.path.isdir('my_folder'):
print('ディレクトリが存在します')
else:
print('ディレクトリが存在しません')
pathlibでディレクトリチェック
from pathlib import Path
# pathlibでディレクトリ存在確認
dir_path = Path('my_folder')
if dir_path.is_dir():
print('ディレクトリです')
実践的な使用例
安全なファイル処理
ファイルを開く前に存在確認を行う安全な処理方法:
import os
filename = 'data.txt'
if os.path.exists(filename):
with open(filename, 'r') as f:
content = f.read()
print(content)
else:
print(f'{filename}が見つかりません')
複数ファイルの一括チェック
from pathlib import Path
files = ['file1.txt', 'file2.txt', 'file3.txt']
for file in files:
if Path(file).exists():
print(f'{file}: 存在')
else:
print(f'{file}: 未存在')
注意点とベストプラクティス
パスの区切り文字
Windows、Mac、Linuxでパス区切り文字が異なるため、os.path.join()やpathlibを使用することを推奨します。
import os
from pathlib import Path
# 推奨方法
path1 = os.path.join('folder', 'subfolder', 'file.txt')
path2 = Path('folder') / 'subfolder' / 'file.txt'
権限エラーの対処
ファイルが存在してもアクセス権限がない場合があります。
import os
try:
if os.path.exists('protected_file.txt'):
with open('protected_file.txt', 'r') as f:
content = f.read()
except PermissionError:
print('ファイルへのアクセス権限がありません')
まとめ
Pythonでファイル・ディレクトリの存在確認を行う方法は複数あります:
- os.path.exists(): 基本的な存在確認
- os.path.isfile(): ファイル限定チェック
- os.path.isdir(): ディレクトリ限定チェック
- pathlib: Python 3.4以降の推奨方法
現代的なPythonコードではpathlibの使用が推奨されていますが、既存コードとの互換性を考慮してos.pathを使用するケースも多くあります。用途に応じて適切な方法を選択しましょう。
■プロンプトだけでオリジナルアプリを開発・公開してみた!!
■AI時代の第一歩!「AI駆動開発コース」はじめました!
テックジム東京本校で先行開始。
■テックジム東京本校
「武田塾」のプログラミング版といえば「テックジム」。
講義動画なし、教科書なし。「進捗管理とコーチング」で効率学習。
より早く、より安く、しかも対面型のプログラミングスクールです。
<短期講習>5日で5万円の「Pythonミニキャンプ」開催中。
<月1開催>放送作家による映像ディレクター養成講座
<オンライン無料>ゼロから始めるPython爆速講座

