環境構築
PermissionError: [Errno 13] Permission denied (Python)
ファイルへのアクセス権限がない
こんな症状
Pythonのopen()などで「PermissionError: [Errno 13] Permission denied」が出る。ファイルの権限不足のほか、ファイルを別のアプリで開いたままにしているときにも起きるよ。
まず試す
対象ファイルをExcelなど他のアプリで開いていたら閉じる。書き込み先を自分のフォルダ(デスクトップ等)にする。
env
# Excelなどでファイルを閉じてから実行する
with open('data.csv', 'w', encoding='utf-8') as f:
f.write('name,score')これで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓ExcelでCSVを開いたまま書き込んだ(情報Ⅰで多い)
→ Excelでそのファイルを閉じてから実行する。 - ✓Program Files など権限が要る場所に書いた
→ 書き込み先をデスクトップやドキュメントなど自分のフォルダに変える。 - ✓open() のパスがフォルダだった
→ ファイル名まで含めたパスを指定する。
なぜ起きる?
ファイルやフォルダへのアクセス権限がないよ。よくあるのは、(1) WindowsでCSVをExcelで開いたままPythonから書き込もうとした、(2) C:\Program Files など管理者権限が必要な場所に書き込もうとした、(3) open()に指定したパスがファイルではなくフォルダだった、の3パターンだよ。情報Ⅰのデータ分析でCSVを扱うときに(1)で遭遇する人が多いんだ。
✕ エラーが起きるコード
f = open('data.csv', 'w')
# Excelでdata.csvを開いたまま実行すると…
# PermissionError: [Errno 13] Permission denied: 'data.csv'✓ 直したコード
# Excelを閉じてから実行する
with open('data.csv', 'w', encoding='utf-8') as f:
f.write('name,score\
')✅ 直ったか確認
再実行してエラーが出ず、目的のファイルが作成・更新されていればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- Permission denied — 権限が不足している
- Permission denied (publickey) — SSH鍵が設定されていない
- Failed to save: Unable to write file (NoPermissions) — ファイルに書き込み権限がない
- error: pathspec '...' did not match any file(s) known to git — 指定したファイル・ブランチが見つからない
- error: pathspec did not match any files — 指定したファイルが見つからない
📖 この問題を学べるレッスン
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- VS Codeのインストール方法 — インストールと初期設定を図解で解説
- プログラミング初心者が最初にやるべきこと5選 — 目的を決めて環境構築から