ホーム › エラー解決 › Python › FileNotFoundError
PYTHON ERROR

Python FileNotFoundError: [Errno 2] No such file or directory の原因と直し方

「FileNotFoundError: [Errno 2] No such file or directory」は、open()などで指定したファイルが見つからないときのエラーです。多くは相対パスと実行場所(カレントディレクトリ)のずれが原因です。

このエラーメッセージ

FileNotFoundError: [Errno 2] No such file or directory: 'data.txt'

原因

❌ エラーになるコード

NG
with open("data.txt") as f:
    print(f.read())

✅ 修正したコード

OK
import os
from pathlib import Path

print(os.getcwd())          # 今どこで動いているか確認

p = Path("data.txt")
if p.exists():
    print(p.read_text(encoding="utf-8"))
else:
    print("ファイルがありません:", p.resolve())

# スクリプトファイル基準にする場合
# p = Path(__file__).parent / "data.txt"
▶ 修正済みコードを実行エディタで開く
progoのPython実行環境(インストール不要・登録不要)でその場で動作を確認できます。

解決のポイント

まずos.getcwd()で現在地を確認し、スクリプト基準にしたいときはPath(__file__).parent / "ファイル名"にすると、どこから実行しても動きます。Windowsではr"C:\dir\a.txt"のようにraw文字列にするか、/区切りを使います。

よくある質問

相対パスの基準はどこ?
スクリプトの場所ではなく、コマンドを実行したカレントディレクトリです。
ファイルがあるか事前に確認するには?
Path("data.txt").exists() か os.path.exists() を使います。
新規作成したい場合は?
open(path, "w") なら存在しなくても作成されます(ディレクトリは事前に必要)。