Python でのオープン ファイルの例外処理

Fariba Laiq 2023年6月21日
  1. Python open() ファイル関数
  2. Python オープン ファイル例外
  3. Python でファイルを読み取るときに try-except を使用して例外を処理する
Python でのオープン ファイルの例外処理

ファイルを開くために、Python には open() という組み込み関数があり、ユーザーはこれを使用してファイルを読み書きできますが、何らかの状況でファイルが見つからないか、コンパイラがアクセスできない場合は、 、FileNotFoundErrorに遭遇しました。 この記事では、Python のファイル例外を処理する方法について説明します。

Python open() ファイル関数

この関数は、ファイルを開き、すべてのコンテンツをロードして、ファイル オブジェクトとして返します。

一般的な構文:

open(filename, mode="r")

この関数は 2つの引数を取ります。 1つはファイル名またはファイル パス全体です。 もう 1つはアクセス モードで、ファイルに対して実行する必要があるアクションを決定します。

r (読み取り専用)、w (書き込み専用)、a (追加のみ)、rb (バイナリ形式の読み取り専用) など、さまざまなモードがあります。

Python オープン ファイル例外

存在しないファイルを開こうとしたり、誤って間違ったファイル パスを入力したりして、FileNotFound 例外が発生したとします。

コード例:

file1 = open("myfile.txt", "r")
# Reading from file
print(file1.read())
file1.close()

出力:

FileNotFoundError                         Traceback (most recent call last)
C:\Users\LAIQSH~1\AppData\Local\Temp/ipykernel_4504/3544944463.py in <module>
----> 1 file1 = open("myfile.txt",'r')
      2
      3 # Reading from file
      4 print(file1.read())
      5

FileNotFoundError: [Errno 2] No such file or directory: 'myfile.txt'

open 関数が No such file or directory というエラーを表示していることがわかります。これは、開くファイルがコンパイラによって見つからないためです。

Python でファイルを読み取るときに try-except を使用して例外を処理する

この見つからないファイルの問題を解決する最善の方法の 1つは、コードがあいまいで、いくつかのエラーが含まれていることです。 try ブロックでコードのその部分をラップします。

try ブロックが最初に実行されます。 ファイルが見つからない場合、例外が発生します。

try ブロックの残りのコードはスキップされ、コントロールは except ブロックにジャンプします。 except ブロックでは、発生したエラーの種類について言及しています。

例外は except ブロックで処理されます。 try ブロックに例外がない場合、except 句は実行されません。

次の例を考えてみましょう。

try:
    file1 = open("myfile.txt", "r")
    # Reading from file
    print(file1.read())
    file1.close()
except FileNotFoundError:
    print("FileNotFoundError successfully handled")

出力:

FileNotFoundError successfully handled

try ブロックにエラーがあったため、except ブロックのステートメントが出力に出力されました。 したがって、このトリックを使用すると、エラー メッセージが表示されても出力にメッセージを表示することで、コード内の例外を処理できます。

著者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

関連記事 - Python Exception