【Python】FileNotFoundErrorとは?発生原因や対処法・回避方法を解説

この記事では、Pythonプログラムでよく見かけるエラーである FileNotFoundError について解説します。

このエラーが発生する原因や対処法、回避方法についてわかりやすく説明します。

目次から探す

FileNotFoundErrorとは?

FileNotFoundErrorは、Pythonプログラムでよく見かけるエラーの一つです。

このエラーは、指定したファイルが見つからない場合に発生します。

プログラムが指定したファイルを開こうとしたり、読み込もうとしたりする際に、そのファイルが存在しない場合にこのエラーが発生します。

このエラーは、ファイルのパスが正しく指定されていない、ファイルが存在しない、またはアクセス権限がないなどの理由で発生することがあります。

FileNotFoundErrorの発生原因

ファイルが存在しない場合、ファイルへのアクセス権限がない場合、ファイルパスが正しく指定されていない場合など、さまざまな原因でFileNotFoundErrorが発生することがあります。

ファイルが存在しない場合

FileNotFoundErrorは、指定したファイルが存在しない場合に発生します。

ファイルが存在しない場合、Pythonはそのファイルを見つけることができず、FileNotFoundErrorをスローします。

ファイルが存在しない場合には、以下のようなケースが考えられます。

  • ファイルが削除された
  • ファイルが移動された
  • ファイル名やパスが間違っている

ファイルへのアクセス権限がない場合

ファイルへのアクセス権限がない場合にも、FileNotFoundErrorが発生することがあります。

ファイルへのアクセス権限がない場合、Pythonはそのファイルにアクセスすることができず、FileNotFoundErrorをスローします。

ファイルへのアクセス権限がない場合には、以下のようなケースが考えられます。

  • ファイルが他のプロセスによってロックされている
  • ファイルが読み取り専用である
  • ファイルが管理者権限で保護されている

ファイルパスが正しく指定されていない場合

ファイルパスが正しく指定されていない場合にも、FileNotFoundErrorが発生することがあります。

ファイルパスが正しく指定されていない場合、Pythonは指定された場所にファイルを見つけることができず、FileNotFoundErrorをスローします。

ファイルパスが正しく指定されていない場合には、以下のようなケースが考えられます。

  • ファイルパスが間違っている
  • ファイルパスに使用できない文字が含まれている
  • ファイルパスの区切り文字が正しくない

これらの原因がFileNotFoundErrorの発生原因となります。

FileNotFoundErrorの対処法

ファイルが存在しない場合やアクセス権限がない場合、またはファイルパスが正しく指定されていない場合には、以下の対処法を試してみることができます。

ファイルの存在を確認する

ファイルが存在するかどうかを確認するためには、os.path.exists()関数を使用します。

この関数は、指定したパスのファイルやディレクトリが存在する場合にはTrueを返し、存在しない場合にはFalseを返します。

以下は、ファイルの存在を確認する例です。

import os
file_path = "path/to/file.txt"
if os.path.exists(file_path):
    print("ファイルが存在します")
else:
    print("ファイルが存在しません")

アクセス権限を確認する

ファイルへのアクセス権限がない場合には、os.access()関数を使用してアクセス権限を確認することができます。

この関数は、指定したパスのファイルやディレクトリに対して指定したアクセスモードでアクセスできる場合にはTrueを返し、アクセスできない場合にはFalseを返します。

以下は、ファイルのアクセス権限を確認する例です。

import os
file_path = "path/to/file.txt"
if os.access(file_path, os.R_OK):
    print("ファイルに読み取り権限があります")
else:
    print("ファイルに読み取り権限がありません")

ファイルパスを正しく指定する

ファイルパスが正しく指定されていない場合には、ファイルが見つからないエラーが発生します。

ファイルパスを正しく指定するためには、以下の点に注意してください。

  • ファイル名やディレクトリ名のスペルが正しいか確認する
  • ファイルパスの区切り文字が正しいか確認する(Windowsではバックスラッシュ\、MacやLinuxではスラッシュ/を使用する)
  • ファイルパスが相対パスか絶対パスかを正しく指定する

ファイルパスを正しく指定することで、ファイルが正常に読み書きできるようになります。

以上が、FileNotFoundErrorの対処法です。

これらの対処法を試してみて、問題を解決してください。

目次から探す