1. はじめに
Pythonでファイルを扱う際に欠かせないのが「ファイルの存在確認」と「エラー処理」です。
本記事では、Pythonでファイルの有無をチェックし、安全に処理を進める方法について解説します。
予期せぬエラーを防ぐための基本的なテクニックとして、初心者〜中級者にとって必須の知識です。
2. Pythonでのファイルの存在確認方法
2-1. os.pathモジュールを使ったファイルの確認
Pythonではos.path
モジュールを使って簡単にファイルの存在を確認できます。
import os
file_path = 'example.txt'
# ファイルの存在確認
if os.path.exists(file_path):
print("ファイルは存在します。")
else:
print("ファイルが存在しません。")
実行結果:
ファイルが存在しません。
2-2. pathlib.Path を使った方法
Python 3.4以降ではpathlib
が推奨されています。より直感的に書けるため、今後はこちらが主流です。
from pathlib import Path
file = Path('example.txt')
if file.exists():
print("ファイルは存在します。")
else:
print("ファイルが存在しません。")
実行結果:
ファイルが存在しません。
3. よくある使い方・応用例
3-1. 存在しないファイルの読み込み時にエラーを防ぐ
ファイルが存在しないままopen()
で読み込もうとすると、FileNotFoundError
が発生します。
事前に存在確認を行うか、try〜except
でエラーハンドリングしましょう。
file_path = 'data.txt'
try:
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
print(content)
except FileNotFoundError:
print("指定したファイルが見つかりませんでした。")
実行結果:
指定したファイルが見つかりませんでした。
3-2. ファイルがなければ自動生成する処理
ログファイルや設定ファイルがなければ自動生成する場合もあります。以下はその一例です。
file_path = 'log.txt'
if not os.path.exists(file_path):
with open(file_path, 'w', encoding='utf-8') as f:
f.write("ログファイルを新規作成しました。\n")
print("新しくファイルを作成しました。")
else:
print("ファイルはすでに存在しています。")
実行結果:
新しくファイルを作成しました。
4. 注意点・エラー対策
4-1. 相対パスと絶対パスの違いに注意
'example.txt'
のように相対パスを使っていると、実行ディレクトリによって見つからないことがあります。
常に確実な動作をさせたい場合は絶対パスの利用を検討しましょう。
from pathlib import Path
file = Path(__file__).parent / 'example.txt'
if file.exists():
print("ファイルが見つかりました。")
else:
print("ファイルが見つかりません。")
4-2. ファイルの読み書きは例外処理を伴うのが基本
初心者が陥りやすいのが、open()
だけで安心してしまう点です。
ファイルが開けない・文字コードが違うなどのケースに備え、try〜except
で囲みましょう。
5. まとめ
- Pythonでファイルの存在確認は
os.path.exists()
やpathlib.Path().exists()
を使う - エラー処理には
try〜except
構文を活用する - 実務ではログ管理や設定ファイルの存在チェックに応用できる
学習のコツとしては、実際に「ファイルを用意しないで実行してみる」など、エラーを体験することで理解が深まります。
ファイル操作はあらゆる