FileNotFoundError: [Errno 2] No such file or directory:の原因
今回はFileNotFoundErrorの原因を紹介します。
このエラーはファイルが存在しないことを示しているのですが、実際は相対パスが原因であることが多いです。
FileNotFoundError: [Errno 2]の原因
file_name = "hogehoge.txt"
file = open(file_name) # ここでエラー発生
サンプルコードではopen関数でエラーが発生する例を示しています。
ポイントはfile_nameがフルパスでなく、相対パスとなっていることです。(C:~と書かないと自動的に相対パスとなります)
相対パスが原因
相対パスで書くと、カレントディレクトリにあるファイルを参照することになります。
先ほどのサンプルコードだと、カレントディレクトリ内の「hogehoge.txt」ファイルを開こうとしています。
import os
print(os.getcwd()) # カレントディレクトリを表示
このコードを実行すると、カレントディレクトリが表示されます。
表示されたカレントディレクトリに開きたいファイルが無ければ、それがエラーの原因です。
FileNotFoundError: [Errno 2]の対処法
file_name = "C:...hogehoge.txt" # フルパス
file = open(file_name) # ここでエラー発生
エラー対策は、相対パスをフルパスで書くことです。
カレントディレクトリはPythonの実行によって変わるので、フルパスによってエラー回避してください。