ファイルに対して実行する必要のあるすべての操作が成功しなかった場合(つまり、例外が発生した場合)は、ファイルを削除する必要があります。を使用するのと同じくらい簡単で、ファイルを削除してから例外を再発生させることもできますが、その場合、なんらかの理由でファイルをexcept句で削除できないと、元の例外が失われます。
私が思いついた最高のものはこれです:
try:
file_path = "whatever.jpg"
# do stuff with file
except:
exception_raised = True
raise
finally:
try:
if exception_raised:
os.unlink(file_path)
except:
pass
return file_path # everything OK
より良い、よりPythonicなアプローチを知っている人はいますか?