Pythonで「PermissionError: [Errno 13] Permission denied」が出たときの対処法【Excelファイル読み込み時の注意】

目次

はじめに

PythonでExcelファイルを読み込もうとした際、以下のようなエラーが発生しました。

PermissionError: [Errno 13] Permission denied: 'aaaa.xlsx'

ファイル名は環境によって異なりますが、私の場合は 'majan.xlsx' を読み込もうとしたときに同じエラーが出ました。
今回はこのエラーの原因と解決方法について調べた内容をまとめておきます。


エラーの原因:Excelファイルが開いたままになっている

このエラーは、読み込もうとしているExcelファイルが別のアプリ(主にExcel)で開かれていたことが原因でした。

Windows環境などでは、開かれているファイルを他のプログラムから同時にアクセス(特に書き込み)しようとするとエラーになる場合があります。
pandasのread_excel()関数で読み取ろうとしただけでも、ファイルがロック状態にあるとPermissionErrorが出ることがあります。


解決方法:対象ファイルを閉じてから実行する

対処法はシンプルで、該当するExcelファイル(ここでは ‘aaaa.xlsx’)を閉じた状態にしてからPythonプログラムを実行するだけです。
Excelで開いたままになっている場合は、必ず閉じてから再度実行してみてください。


実際にエラーが出たコード

以下は、エラーが発生したときのコードです。

import pandas as pd

tb = pd.read_excel('aaaa.xlsx')

コードの説明

  • import pandas as pd
     → データ解析ライブラリpandasを読み込んでいます。
  • pd.read_excel('aaaa.xlsx')
     → Excelファイルを読み込んで、tbという変数にデータを格納しています。

このようにシンプルな読み込み処理でも、対象ファイルが開いたままだとPermissionErrorが出ることがあります。


応用のヒント

  • ファイルを自動的に閉じることはできません。ユーザー自身が手動で閉じる必要があります。
  • ネットワークドライブや共有ドライブにあるExcelファイルでは、他のユーザーが開いている状態でも同じエラーが発生します。
  • 書き込み処理を行う場合(to_excel()など)も、ファイルが開いているとPermissionErrorが出るので要注意です。

まとめ

PythonでExcelファイルを扱う際、「PermissionError: [Errno 13] Permission denied」が出た場合は、
まずファイルが開かれていないかを確認することが重要です。特にExcelでファイルを開いたままにしていると、読み込みも書き込みもできない場合があります。

ファイルを閉じるだけで解決することが多いため、慌てずに対応してみてください。
少しでも参考になれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次