Pythonでファイル・ディレクトリの存在確認:実践ガイド
Pythonでファイル・ディレクトリの存在確認:実践ガイド
堅牢なPythonアプリケーションを構築する際、読み取り、書き込み、削除などの操作を行う前にファイルやディレクトリが存在するか確認する必要がよくあります。このチェックを怠るとランタイムエラーや予期せぬクラッシュの原因になります。このガイドでは、公式Pythonドキュメントとベストプラクティスに基づく最も信頼性の高い方法を解説します。
os.path.exists()の使用
標準ライブラリの一部であるos.pathモジュールは、パスが既存のファイルまたはディレクトリを参照している場合にTrueを返すシンプルなexists()関数を提供します。シンプルな存在確認で最も頻繁に使用される方法です。
import os
from os import path
print(path.exists('guru99.txt')) # ファイルが存在すればTrue
print(path.exists('myDirectory')) # ディレクトリが存在すればTrue
典型的なユースケース
def check_item(path_str):
if path.exists(path_str):
print(f"{path_str} は存在します。")
else:
print(f"{path_str} は存在しません。")
ファイルとディレクトリの区別
既存パスの具体的なタイプを特定するには、Pythonはisfile()とisdir()という2つの補完的な関数を提供します。それぞれ通常ファイルまたはディレクトリの場合のみTrueを返します。
print(path.isfile('guru99.txt')) # ファイルならTrue
print(path.isdir('myDirectory')) # ディレクトリならTrue
pathlibの活用 – モダンなアプローチ
Python 3.4で導入されたpathlibモジュールは、ファイルシステムパスのオブジェクト指向インターフェースを提供します。そのPathオブジェクトにはexists()、is_file()、is_dir()などのメソッドがあり、多くの開発者がより読みやすいと感じています。
from pathlib import Path
file_path = Path('guru99.txt')
print(file_path.exists()) # ファイルまたはディレクトリが存在すればTrue
print(file_path.is_file()) # 通常ファイルならTrue
print(file_path.is_dir()) # ディレクトリならTrue
推奨ベストプラクティス
- モジュールは1回だけインポート;繰り返しインポートを避ける
- 新規プロジェクトでは
Pathオブジェクトを使用し、明確な構文の恩恵を受ける - 書き込み操作時は存在確認を先に行い、上書き防止や
Path.mkdir()でのディレクトリ作成に活用 - チェックと操作の間でパスが変わる可能性がある場合は
FileNotFoundError例外をハンドリング
クイックリファレンス
| 関数 | Trueを返す条件 |
|---|---|
os.path.exists() | パスまたはディレクトリが存在 |
os.path.isfile() | パスが既存の通常ファイル |
os.path.isdir() | パスが既存のディレクトリ |
pathlib.Path.exists() | パスまたはディレクトリが存在(Python 3.4+) |
pathlib.Path.is_file() | パスが既存の通常ファイル |
pathlib.Path.is_dir() | パスが既存のディレクトリ |
詳細ドキュメントは公式os.pathおよびpathlibモジュールを参照してください。
Python
- 湿度センサーの検証とキャリブレーションで精密測定を実現
- 産業用ブレーキ点検の包括ガイド:安全性と効率を確保する手順
- PythonファイルI/O:ファイル操作、読み書き、管理のマスター
- Pythonディレクトリ・ファイル操作マスター:作成、移動、一覧、リネーム、削除
- Pythonで現在の日付と時刻を取得する実践ガイド
- Python print()関数の実践ガイド:基本から応用まで
- Python print()で改行なし出力:endパラメータとその他のテクニック
- Python JSON:エンコード、デコード、ファイル処理の実践ガイド
- Pythonで平均を計算する:実践ガイド
- Python 開発環境の構築ガイド:インストールから実行まで完全解説
- PythonファイルI/O:入出力操作をマスターする