1

私のスクリプトは、実行中にデータを保存するファイルを作成します。プログラムの終了時にこれらのファイルを削除したいと考えています。これは可能ですか?

「ファイルを作成しない」などの回避策の提案は必要ありません。

とても有難い!

4

4 に答える 4

7

Python の os モジュールはどうですか? あなたが望むことをするための「remove()」メソッドがあります。

ドキュメントを見る

プログラムの終了を処理するには、atexitモジュールを使用できます。

例:

import os

def delete_file(name):
    os.remove(name)

import atexit
atexit.register(delete_file, file_path)

file_path は、削除するファイルです。

于 2011-03-27T10:54:46.583 に答える
6

atexit()ハンドラが必要です。

私の経験では、おそらくインタープリターのバグが原因で (?)、使用する必要のあるモジュールを含め、使用する必要のあるリソースが既にクリーンアップされている場合があったため、これらを使用するのは非常に困難であることがわかりました。

于 2011-03-27T10:54:37.307 に答える
1

正しく機能しているように見える、より簡単な方法を次に示します。私は実際のコードでそれを使用したことがないので、私が知らない欠点があるかもしれません。より経験豊富なPythonistasからの批評は大歓迎です。

import sys

def main():
    print('main')
    sys.exit(0)

try:
    main()
finally:
    print('cleanup code goes here')
于 2011-03-27T11:13:29.350 に答える
1

Python はtempfiles(同名のモジュールを参照) をサポートしています。これらは、プログラムの終了時に削除される保証はありませんが、OS は、必要に応じて (たとえば、一部の Unix では毎晩) 予告なしに削除できることを認識しています。

于 2011-03-27T10:59:25.587 に答える