Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでのクリーンアップアクションの定義


プログラムが完全に実行されているか、エラーが発生したかに関係なく、プログラムにこの特定のタスクを実行させたい場合は、さまざまな状況が発生します。ほとんどの場合、エラーや例外をキャッチするために、ブロックを除いて試行するために使用します。

「try」ステートメントは、どのような状況でも実行する必要のある「クリーンアップアクション」を定義するための非常に便利なオプションの句を提供します。例-

>>> try:
   raise SyntaxError
finally:
   print("Learning Python!")
Learning Python!
Traceback (most recent call last):
   File "<pyshell#11>", line 2, in <module>
      raise SyntaxError
   File "<string>", line None
SyntaxError: <no detail available>

最後の句は何があっても実行されますが、else句は例外が発生しなかった場合にのみ実行されます。

例1 −以下の例を考えてみましょう。すべてが正常に見え、例外なくファイルに書き込む(プログラムが機能している)場合、次のように出力されます-

file = open('finally.txt', 'w')
try:
   file.write("Testing1 2 3.")
   print("Writing to file.")
except IOError:
   print("Could not write to file.")
else:
   print("Write successful.")
finally:
   file.close()
   print("File closed.")

上記のプログラムを実行すると、-

を取得します
Writing to file.
Write successful.
File closed.

例2 −ファイルを読み取り専用にして書き込みを試み、例外を発生させて、例外を発生させてみましょう。

file = open('finally.txt', 'r')
try:
   file.write("Testing1 2 3.")
   print("Writing to file.")
except IOError:
   print("Could not write to file.")
else:
   print("Write successful.")
finally:
   file.close()
   print("File closed.")

上記のプログラムは、-

のような出力を提供します
Could not write to file.
File closed.

エラーが発生した場合、それを処理するためのexcept句はありません。このような場合、クリーンアップアクション(最後にブロック)が最初に実行され、次にコンパイラによってエラーが発生します。以下の例で概念を理解しましょう-

file = open('finally.txt', 'r')
try:
   file.write(4)
   print("Writing to file.")
except IOError:
   print("Could not write to file.")
else:
   print("Write successful.")
finally:
   file.close()
   print("File closed.")

出力

File closed.
Traceback (most recent call last):
   File "C:/Python/Python361/finally_try_except1.py", line 4, in <module>
      file.write(4)
TypeError: write() argument must be str, not int

したがって、上記から、例外が発生したかどうかに関係なく、最後に句が常に実行されることがわかります。


  1. Pythonのジャンクファイルオーガナイザー?

    これは、ほとんどのファイルとフォルダーを1つの場所に保持し、すべてのファイルが何であるか混乱することがあり、手動でそれを行うには怠惰すぎるPythonプログラマーにとって非常に役立つように思われるかもしれません。以下は、適切なフォルダ内のすべてを1回で整理または簡略化して、空のディレクトリを削除するPythonプログラムです。 したがって、さまざまなタイプのファイルが多数存在するディレクトリパスがあり(以下のように)、プログラムは各ファイルタイプをそれぞれのフォルダに分離します(以下のように)。 入力フォルダの構造 必要な出力 まず、さまざまなフォルダに分離するファイル

  2. Pythonopenpyxlモジュールを使用してExcelファイルの読み取りと書き込み

    Pythonは、Excelファイルを操作するためのopenpyxlモジュールを提供します。 このモジュールでは、Excelファイルの作成方法、書き込み方法、読み取り方法などを実装できます。 openpyxlモジュールをインストールするには、コマンドプロンプトでこのコマンドを記述できます pip install openpyxl シートにタイトル名を付けたい場合 サンプルコード import openpyxl my_wb = openpyxl.Workbook() my_sheet = my_wb.active my_sheet_title = my_sheet.title print