このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

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の実行によって変わるので、フルパスによってエラー回避してください。

Python

Posted by やろまい