【Python】CSVの読み込みエラー用の例外処理を定義する

この記事では、Pythonの例外処理の基本と、CSVファイルの読み込み時に発生するエラーに対する例外処理の実装方法を紹介します。

初心者の方でもわかりやすく解説していますので、ぜひ参考にしてください。

目次から探す

例外処理の基本

プログラムを実行していると、予期しないエラーが発生することがあります。

このようなエラーに対処するために、Pythonでは例外処理という仕組みが用意されています。

例外処理を使うことで、エラーが発生した場合にプログラムがクラッシュすることなく、適切な処理を行うことができます。

try-except文の構文

例外処理は、tryexceptというキーワードを使って記述します。

tryブロック内には、エラーが発生する可能性のあるコードを書きます。

そして、exceptブロック内には、エラーが発生した場合に実行する処理を書きます。

以下は、try-except文の基本的な構文です。

try:
    # エラーが発生する可能性のあるコード
except エラーの種類:
    # エラーが発生した場合に実行する処理

例外の種類と対応するexcept節の指定

Pythonでは、さまざまな種類の例外が定義されています。

例えば、FileNotFoundErrorはファイルが見つからない場合に発生する例外です。

他にも、TypeErrorValueErrorなど、さまざまな例外があります。

except節では、どの種類の例外に対して処理を行うかを指定することができます。

例外の種類を指定するには、exceptキーワードの後に例外のクラス名を書きます。

以下は、例外の種類ごとに処理を行う例です。

try:
    # エラーが発生する可能性のあるコード
except FileNotFoundError:
    # ファイルが見つからない場合の処理
except TypeError:
    # 型エラーが発生した場合の処理
except ValueError:
    # 値エラーが発生した場合の処理

例外の種類を指定しないexcept節も書くことができます。

この場合、どの種類の例外が発生しても同じ処理が実行されます。

以上が、例外処理の基本的な構文と例外の種類と対応するexcept節の指定方法です。

次のセクションでは、CSVファイルの読み込みでエラーが起きた場合の例外処理について見ていきましょう。

CSVファイルの読み込みでの例外処理の実装

CSVファイルを読み込む際には、いくつかのエラーが発生する可能性があります。

それぞれのエラーに対して、適切な例外処理を実装することが重要です。

以下では、CSVファイルの読み込み時に発生する一部のエラーについて、具体的な例外処理の方法を紹介します。

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

CSVファイルが存在しない場合、FileNotFoundErrorという例外が発生します。

この場合、try-except文を使用して例外処理を行います。

以下は、ファイルが存在しない場合の例外処理のコード例です。

import csv

try:
    with open('data.csv', 'r') as file:
        reader = csv.reader(file)
        # ファイルの読み込み処理
except FileNotFoundError:
    print("ファイルが存在しません")

ファイルが読み込めない場合

CSVファイルが読み込めない場合、PermissionErrorIOErrorなどの例外が発生することがあります。

これらの例外に対しても、try-except文を使用して例外処理を行います。

以下は、ファイルが読み込めない場合の例外処理のコード例です。

import csv

try:
    with open('data.csv', 'r') as file:
        reader = csv.reader(file)
        # ファイルの読み込み処理
except (PermissionError, IOError):
    print("ファイルを読み込めません")

ファイルの形式が正しくない場合

CSVファイルの形式が正しくない場合、csv.Errorという例外が発生します。

この場合も、try-except文を使用して例外処理を行います。

以下は、ファイルの形式が正しくない場合の例外処理のコード例です。

import csv

try:
    with open('data.csv', 'r') as file:
        reader = csv.reader(file)
        # ファイルの読み込み処理
except csv.Error:
    print("ファイルの形式が正しくありません")

ファイルのエンコーディングが正しくない場合

CSVファイルのエンコーディングが正しくない場合、UnicodeDecodeErrorなどの例外が発生することがあります。

この場合も、try-except文を使用して例外処理を行います。

以下は、ファイルのエンコーディングが正しくない場合の例外処理のコード例です。

import csv

try:
    with open('data.csv', 'r', encoding='utf-8') as file:
        reader = csv.reader(file)
        # ファイルの読み込み処理
except UnicodeDecodeError:
    print("ファイルのエンコーディングが正しくありません")

ファイルのデータが不正な場合

CSVファイルのデータが不正な場合、ValueErrorなどの例外が発生することがあります。

この場合も、try-except文を使用して例外処理を行います。

以下は、ファイルのデータが不正な場合の例外処理のコード例です。

import csv

try:
    with open('data.csv', 'r') as file:
        reader = csv.reader(file)
        # ファイルの読み込み処理
        for row in reader:
            # データの処理
            pass
except ValueError:
    print("ファイルのデータが不正です")

以上が、CSVファイルの読み込み時に発生する一部のエラーに対する例外処理の実装方法です。

実際のプログラムでは、これらの例外処理を適切に組み合わせることで、より堅牢なプログラムを作ることができます。

目次から探す