Pythonでファイルを読み込む際に、FileNotFoundErrorというエラーが発生することがあります。このエラーは、その名の通り「ファイルが見つからない」ことを示しています。

FileNotFoundErrorの原因

FileNotFoundErrorの原因は、「ファイルが見つからない」、つまり存在しないファイルにアクセスしようとした場合に発生します。

例えば、以下のコードでは、ループの中で 0.csv から 2.csv までアクセスしようとしていますが、 1.csv が無いので読み込めずにエラーになっています。

import pandas as pd
for i in range(3):
    filename = "csv/{}.csv".format(str(i))
    print(filename)
    df = pd.read_csv(filename)
    print(df)
    print()

FileNotFoundErrorの回避方法

複数のファイルを読み込んで処理する場合、一部のファイルが存在しないことがあります。しかし、存在しない場合にエラーとして処理を止めたい場合もあれば、ファイルが存在しない場合を許容して、存在するファイルだけを処理したい場合もあります。

ファイルの存在確認をしてから処理する

ファイルが無い場合にアクセスしようとするとエラーになるので、まずファイルの存在確認をして、ファイルが無い場合はアクセスしないようにすれば良いです。

ファイルの存在確認をする場合は os.path.exists() を用います。引数には存在を確認したいファイルのパスを記載します。

import pandas as pd
import os
for i in range(3):
    filename = "csv/{}.csv".format(str(i))
    print(filename)
    if os.path.exists(filename):
        df = pd.read_csv(filename)
        print(df)
    else:
        print("{} not found.".format(filename))
    print()

エラーをスキップする

もう一つの方法はエラーをスキップする方法です。FileNotFoundErrorが発生してもプログラムの処理を止めないようにします。

具体的には try 処理の中で、 FileNotFoundError のエラー発生時のみスキップ用の except の処理に飛ばして、次のループを実行するようにします。

for i in range(3):
    filename = "csv/{}.csv".format(str(i))
    print(filename)
    try:
        df = pd.read_csv(filename)
        print(df)
    except FileNotFoundError as e:
        print("{} not found.".format(filename))
    print()

これらの方法を用いることで、Pythonで FileNotFoundError を適切に対処することができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です