この記事ではPythonのtry except文を用いた例外処理の方法について解説していきます。
ポイントとしては`open`関数でファイルを開く操作、`pass`を使用して何もしない例外処理を行うこと、そして`sys.exit`を使用してプログラムを終了させる処理、を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
Pythonのtry except文で例外処理で何もしない方法
それではまず、Pythonのtry except文で例外処理で何もしない方法について解説していきます。
このセクションでは、ある指定フォルダ内からcsvファイルに記載されたファイル名を読み込んでいく処理を例に取ります。
ファイルが存在しない場合は、何もせずに次のファイルの読み込みに進むという処理を見ていきます。
jupyter notebookなどの各開発環境を開いて、以下コードをコピペしましょう。
# 必要なライブラリをインポート
import os
# CSVファイルのパス
csv_file_path = 'ファイルリストが記載されたCSVのパス'
# CSVからファイル名を読み込む
with open(csv_file_path, 'r') as file:
file_names = file.readlines()
# 指定のフォルダ内をループ
for namae in file_names:
namae = namae.strip() # 改行を削除
try:
# ファイルを開く
with open(os.path.join('指定のフォルダパス', namae), 'r') as f:
print(f"{namae} is found and opened.")
except FileNotFoundError:
# ファイルが見つからない例外が発生した場合、何もしない
pass
このコードは、まずCSVファイルからファイル名のリストを読み込み、指定されたフォルダ内でそれらのファイルを一つずつ開こうとします。
ファイルが存在しない場合には、`FileNotFoundError`が発生しますが、`pass`ステートメントを使って、この例外が発生しても何もせずに次のファイルの処理に移行します。
【open, pass】
Pythonのtry except文で例外処理で、処理終了とする方法
続いては、Pythonのtry except文で例外処理で、処理終了とする方法について解説していきます。
先ほどと同様に、指定フォルダからファイルを順に読み込む処理を例にしますが、今回はファイルが見つからない場合にプログラム全体を終了させます。
jupyter notebookなどの各開発環境を開いて、以下コードをコピペしましょう。
# 必要なライブラリをインポート
import os
import sys
# CSVファイルのパス
csv_file_path = 'ファイルリストが記載されたCSVのパス'
# CSVからファイル名を読み込む
with open(csv_file_path, 'r') as file:
file_names = file.readlines()
# 指定のフォルダ内をループ
for namae in file_names:
namae = namae.strip() # 改行を削除
try:
# ファイルを開く
with open(os.path.join('指定のフォルダパス', namae), 'r') as f:
print(f"{namae} is found and opened.")
except FileNotFoundError:
# ファイルが見つからない例外が発生した場合、プログラムを終了
print(f"{namae} not found. Terminating program.")
sys.exit(1)
このスクリプトでは、指定したフォルダ内でCSVファイルに記載されたファイル名のファイルを開こうとします。
ファイルが存在しない場合、`FileNotFoundError`例外が発生し、その時点でプログラムが`sys.exit(1)`により終了します。
`sys.exit(1)`は、プログラムがエラーにより終了したことを示すために、通常の終了(`sys.exit(0)`)と区別するために、異なる終了ステータス(この場合は`1`)を返します。
まとめ
この記事を通じて、Pythonでのtry except文を用いた例外処理の基本と応用について学ぶことができました。
例外処理は、プログラムが予期しないエラーに遭遇した際に、それを適切に処理し、プログラムの安定性を高める重要な技術です。
今回学んだ`pass`と`sys.exit`を使用することで、より堅牢なプログラムを作成することができるようになります。
コメント