openpyxlで作成したシステムを動かしたら、
「FileNotFoundError: [Errno 2] No such file or directory: xxx」
というエラーが出た…。どうしたらいいのか教えて!
なるほど…。長いエラーは頭真っ白になりますよね。
よくあるエラーなので、まずは落ち着きましょう。
今回は、「No such file or directory: xxx」というエラーの
代表的な原因と対処法を紹介いたします。
「FileNotFoundError: [Errno 2] No such file or directory: xxx」の原因と対処法を
Python歴3年の私が、できるだけわかりやすく解説し、解決に導きます。
「No such file or directory: xxx」エラーの原因
代表的な原因は以下の3つです。
- 指定したファイル(フォルダ)が存在しない
- 指定する名前が間違っている
- 違う場所を指定している
まず、この「No such file or directory: xxx」はどのようなエラーなのでしょうか。
「No such file or directory: xxx」はどんなエラー?
「No such file or directory: xxx」は、
直訳すると、「そのようなファイル(フォルダ)はありません」となります。
要は、「指定したファイル(フォルダ)が見つかりませんでした」ということですね。
では、ファイル(フォルダ)が見つからない原因は何でしょうか。
単純にファイル(フォルダ)が無いだけ?
実はそれだけではないんです。事項で解説いたします。
「No such file or directory: xxx」の原因と対処法
冒頭でも触れましたが、代表的な原因は以下の3つです。
- 指定したファイル(フォルダ)が存在しない
- 指定する名前が間違っている
- 違う場所を指定している
1つ1つ見ていきましょう。
指定したファイル(フォルダ)が存在しない
一番わかりやすい原因ですね。
指定した場所に指定したファイル(フォルダ)があるか確認してみてください。
指定したファイル(フォルダ)が無ければ、原因はコレです。
ファイル(フォルダ)があるのにエラーが出ている場合は、次の「指定する名前が間違っている」や、その次の「違う場所を指定している」をご確認ください。
指定したファイル(フォルダ)が存在しない場合の対処法
指定した場所に指定したファイル(フォルダ)が存在しない場合の対処法は下記の2つです。
- 新規作成する
- 用意する
何も入っていないフォルダや、まっさらなファイルでよければ、「右クリック」→「新規作成」から対象のファイルやフォルダを新規作成してください。
新規作成したら、ファイル名(フォルダ名)を指定した名前に変更するのをお忘れなく。
特定のファイルが入ったフォルダや、データが書かれたファイルが必要な場合は、そのファイル(フォルダ)を任意の場所からコピーしてくるなどして用意して、再度システムを動かしてみてください。
指定する名前が間違っている
指定したファイル(フォルダ)があるのにエラーが出ている場合は、大抵コレが原因です。
私もよく経験しています。
wb = openpyxl.load_workbook('Utatane.xlsx')
構文で指定したファイル名(フォルダ名)と実際のファイル名(フォルダ名)が一致していないということです。
私も過去にこんなことがありました。
構文で「sheet.xlsx」を開くように指定をしたらエラーが出ました。
確認すると、実際のファイルは「sheeet.xlsx」でした。。。ムキー!!
よくある指定間違い
- 小文字・大文字の違い(NoSuch / Nosuch / nosuch)
- スペースやアンダーバーあるなし(nosuch / no such / no_such)
- 拡張子が微妙に違う(.xlsx / .xls / .xlsm)
名前が間違っている時の対処法
名前が間違っている時の対処法は下記の2つです。
- 実際のファイル名(フォルダ名)を変更する
- 構文の指定を変更する
要は、実際のファイル名(フォルダ名)と構文のファイル名(フォルダ名)を一致させるということです。
ファイル名(フォルダ名)が変更できたら、再度システムを動かしてみてください。
違う場所を指定している
まれにある原因がコレです。
指定のファイルが違うフォルダに存在するか、違うフォルダを指定してしまっている状態です。
要約すると、
- 指定とは違う場所にファイルを用意してしまっている
- 用意した場所とは違うフォルダを見に行くような構文になっている
よくあるパターンは以下の2つです。
- 指定するフォルダの階層が違う
- よく似たフォルダを指定している
実際のファイルがあるフォルダのアドレスをコピーして、構文の下に貼り付け、見比べてみましょう。
wb = openpyxl.load_workbook('C:/utatane/utatane.xlsx')
違う場所を指定している時の対処法
ファイル名(フォルダ名)の時と同じ要領で、場所を合わせましょう。
- 指定した場所にファイルを移動させる
- 構文の指定場所を変更する
場所を変更したら、再度システムを動かしてみてください。
最後に
「FileNotFoundError: [Errno 2] No such file or directory: xxx」の原因と対処法を解説いたしました。
このエラーが出たときは、まずファイル名の指定が合っているかを確認するようにしましょう。
このブログでは、Pythonに関する情報を配信しております。
この記事がわかりやすいと感じた方は、ぜひ他の記事も読んでいってください。
最後までお読みいただき、ありがとうございました。がんばってください!