2017-09-28 9 views
-3

tempfileライブラリを使用している場合、プログラムが完了しても一時ファイルが自動的に削除されない場合があります。これは、一時ファイルが積み重なるとディレクトリが乱雑になるため、複数回使用されるプログラムにとっては非常に重要です。Python 3.4:一時ファイルが自動的に削除されない

答えて

-2

これはQ &です。したがって、私の解決策です。

どうやら、tempfile.TemporaryFileのデフォルト設定は自動的に一時ファイルを削除しますが、あなたのtempfile.NamedTemporaryFile作品に接頭辞を追加していません:

with tempfile.NamedTemporaryFile(prefix="anything_", 
             dir=os.getcwd()) as tempf: 

      '''put something''' 
      tempf.seek(0) 

注:

  • os.getcwd()は取得することですあなたのファイルの現在のディレクトリ。
  • あなたの一時ファイルがanything_ + (random values)(すなわちanything_23mem)だろう

それがお役に立てば幸いです。

+1

問題は何ですか? –

+0

これは、スタックオーバーフローの問題ではなく、Pythonの人々のバグレポートのように聞こえます。あなたの問題も解決策も、まったく意味がありません。私は、 'with'ブロックの終了時に自動削除を引き起こすために' prefix'を提供する必要はありません。また、 'ctypes'や拡張機能が実際にはクリーンアップをバイパスしてインタープリタをクラッシュさせた場合を除いて)自動削除に失敗したことはありません。これがまったく動作するならば、 'prefix'には関係なく、(TEMP'ストレージディレクトリのパーミッションに何か問題があるため)格納場所として作業ディレクトリを明示的に使用することになります。 – ShadowRanger

+0

@ShadowRanger私の 'TEMP'フォルダ内の一時ファイルの自動削除が機能していないのは疑いがありました。だから私はそのディレクトリに行きました(スクリプトを実行した後)、私はまだそれらを見ました。次に簡単に監視できることは、一時ファイルの 'dir'をスクリプトのディレクトリと同じにすることです。また、私はPCの管理者を使用しています。 スクリプトを実行しようとしましたが、動作しましたが、一時ファイルは残っていました。そしてそれが同じソリューションを体験してくれる人がいれば私の "解決策"を共有する理由です。 – Kucosyn

関連する問題