今回は、PythonのIOErrorsの処理について学びます。
ある例題に対して、数学的な演算を行っているとします。
これが長くなると、より悲劇的なことになります。
主な問題は、どこかで行き詰まったときに発生します。
苦労して、それを解決します。
しかし、その答えが納得のいくものでなかったり、間違っていたりします。
これには2つの可能性がある。
- 1.解決しようとしている問題が、最初から正しく構築されていないか。
- または、全体のプロセスやステップで間違った入力を与えている。
1つの簡単な言葉で全体がエラーです。
様々な条件下で、様々なタイプのものがあります。
それは問題そのものに依存します。
同じように、プログラミングにもエラーがある。
それらは出力の異なる形態であり、特殊なケースで発生します。
PythonのIOErrorって何?
IOErrorはInput/Outputエラーという意味です。
参照しているファイルやファイルパス、OSの操作などが存在しない場合に発生します。
例えば、既存のファイルに対して実行操作を行ったときに、そのファイルが保存場所から消えてしまった場合、PythonはIOErrorを投げることになります。
さて、PythonでIOErrorsを処理する方法を学ぶ前に、さまざまな種類のエラーを理解しましょう。
Pythonのエラーの種類
コンパイラは、より良い識別と解決のために、エラーを異なるカテゴリーに分類します。
以下は、プログラミング中に遭遇する最も一般的なエラーの種類です。
- ZeroDivisionError。数値をゼロで割ろうとしたときに発生します。
- AssertionError(アサートエラー)。Pythonスクリプトのデバッグやassert文が失敗したときに出る。
- AttributeError(属性エラー)。与えられた属性が間違っているか、モジュールやスクリプトに存在しない場合。
- FloatingPointError(浮動小数点エラー)。浮動小数点演算の実装処理でエラーが発生した場合。
- ImportError/ModuleNotFoundError: モジュールをインポートしようとして、それが存在しない場合、これが発生します。
-
- IOError : アクセスしようとしているファイルがシステム内に存在しない場合に発生します。
例外の詳細については、Pythonの公式ドキュメントを参照してください。
Python で IOErrors を検出し処理する
一般に、新しいバージョンの Python では、この例外は新しい名前を持っています。
Python でのファイル操作時の IOErrors の扱いについて
ファイルを参照するための関数を作って、IOErrorを処理してみましょう。
コードはこちら。
file = open ( 'sample.txt' , 'w' )
print ( 'The file name is: ' , file .name)
print ( 'Openeing mode: ' , file .mode)
|
file .close()
print ( 'File is closed: ' , file .closed)
|
try :
file = open ( 'sample.txt' , 'w' )
print ( 'File found!!!' )
except IOError:
print ( 'File not found!!!' )
# Output: File not found!!! |
ここで、ファイルを削除してから開こうとすると、必要なエラーが発生します。
結果は、以下の通りです。
FileNotFoundErrorはIOErrorのサブクラスです。
PythonのException Handlingメソッドを使って検出することもできます。
try と catch ブロックを使って filenotfounderror を処理し、より良い、より理解しやすい出力を提供しましょう。
説明
- try ブロックでは、ファイルを読み取りモードで開こうとします。
-
- もしファイルが存在すれば、’file found’ と表示するメッセージを追加しています。
-
- ファイルが存在しない場合は、exceptステートメントで対処しています。
-
- エラーが発生した場合、このブロックはエラーをキャッチし、以前のような複雑なエラーメッセージではなく、「File not found」と表示します。
まとめ
というわけで、IOErrorの処理の話題は終わりです。
このエラーは特にPythonプログラミングのファイル操作の基準で扱われます。
このトピックは、try-exceptブロックを使ってエラーを取り除くことができる、勉強しやすいトピックです。
もう一度、簡単なコードを見直して、より明確なアイデアを得てください。
PythonでIOErrorsを扱うための簡単で短いガイドを楽しんでいただけたら幸いです。