私のスクリプトは、実行中にデータを保存するファイルを作成します。プログラムの終了時にこれらのファイルを削除したいと考えています。これは可能ですか?
「ファイルを作成しない」などの回避策の提案は必要ありません。
とても有難い!
私のスクリプトは、実行中にデータを保存するファイルを作成します。プログラムの終了時にこれらのファイルを削除したいと考えています。これは可能ですか?
「ファイルを作成しない」などの回避策の提案は必要ありません。
とても有難い!
atexit()ハンドラが必要です。
私の経験では、おそらくインタープリターのバグが原因で (?)、使用する必要のあるモジュールを含め、使用する必要のあるリソースが既にクリーンアップされている場合があったため、これらを使用するのは非常に困難であることがわかりました。
正しく機能しているように見える、より簡単な方法を次に示します。私は実際のコードでそれを使用したことがないので、私が知らない欠点があるかもしれません。より経験豊富なPythonistasからの批評は大歓迎です。
import sys
def main():
print('main')
sys.exit(0)
try:
main()
finally:
print('cleanup code goes here')
Python はtempfiles
(同名のモジュールを参照) をサポートしています。これらは、プログラムの終了時に削除される保証はありませんが、OS は、必要に応じて (たとえば、一部の Unix では毎晩) 予告なしに削除できることを認識しています。