背景
pythonでのデータ分析において、for分で処理を行うが一旦エラー発生も込みで全てに処理を実行し、後でエラーデータ案件に絞って処理を行いたい。
対処方法(chat gptを使用)
tracebackのモジュールを使用して例外処理を行う。
下記chat gpt提案のコードで解決。
import traceback
def process_item(item):
# ここにエラーが発生する可能性のある処理を記述
if item == 0:
raise ValueError("ゼロの項目は処理できません") # ゼロの項目に対してエラーを発生させる
return 10 / item
items = [10, 0, 5, 0, 2] # サンプルのアイテムリスト
for item in items:
try:
result = process_item(item)
print(f"アイテム {item} の処理結果: {result}")
except Exception as e:
# エラーが発生した場合にエラーメッセージとスタックトレースを出力し、次のアイテムに進む
tb = traceback.format_exc()
print(f"アイテム {item} の処理中にエラーが発生しました: {e}")
print(f"スタックトレース:\n{tb}")
continue
ログをlinux環境で残したい場合は、linuxのリダイレクト機能を使用して下記で標準出力の内容をtxtに保存可能。
xxx.py > yyy.txt
※