2017-06-28 11 views
1

一時的なファイルを作成することは可能ですか?一時的なファイルとディレクトリを生成するライブラリtempfileを調べました。一時的なファイルをPythonで作成していつか自動的に削除します

tempfile.TemporaryFile:この関数は、閉じられるとすぐに破棄される一時ファイルを作成します。

tempfile.NamedTemporaryFile:この関数は、の削除を受け入れます。 deleteが指定されている場合は、値falseを呼び出している間は、ファイルはクローズ時に削除されません。

私が必要とするのは、私がそれを閉じた後でもしばらくの間その名前で読むことができるはずの一時ファイルです。ただし、しばらくすると自動的に削除されます。

Python 2.7でこれを行う最も簡単な方法は何ですか?

+0

同じスクリプト内で読む予定ですか? – bakatrouble

+1

いいえ、私はファイル名を持ち、その名前を使って後で読む必要があります。 – Codeformer

答えて

1

あなただけのPythonプログラム以内の間隔でファイルを実行する必要がある場合は、コンテキストマネージャとして使用することができます:

def main(file_object): 
    # Can read and write to file_object at any time within this function 

if __name__ == '__main__': 
    with tempfile.NamedTemporaryFile() as file_object: 
     main(file_object) 
     # Can still use file_object 
    # file_object is referencing a closed and deleted file here 

あなたは、Pythonの外でそれを開くことができるようにする必要がある場合プログラムは、mainが終了した後、非同期的に実行されるプロセスのように、より永続的な解決策を探すべきです(例えば、ユーザーがファイル名を指定できるようにするなど)。

一時的な自動ファイルを削除すると、threading.Timerしばらくしてから削除してください。ただし、タイマーが終了する前に停止していてもプログラムによって削除されていることを確認してください。

関連する問題