我使用的是Python包,cdo,這在很大程度上依賴於tempfile存儲中間結果中刪除臨時文件。創建的臨時文件非常大,更大的運行計算時,我碰到了/tmp
目錄得到了填補和腳本用disk full
錯誤(我們正在談論10S到GB的100S)失敗的問題。我找到的解決方法,通過創建本地文件夾的問題,說$HOME/tmp
,然後做腳本評估
import tempfile
tempfile.tempdir='$HOME/tmp'
導入cdo
模塊之前。雖然這對我很有用,但如果我也想讓其他人使用我的腳本,這有點麻煩。因此,我想知道,是否會有解決的,例如,告訴tmpfile
定期清除所有的臨時文件(通常一旦腳本完成這個只是做)的問題更優雅的方式。從我這邊來看,這是可能的,因爲我正在運行一個長循環,每次迭代都會生成一個指定文件,並且在此迭代過程中創建的所有臨時文件都將在後續丟棄。
只需要使用https://stackoverflow.com/questions/21257782/how-to-remove-file-when-program-exits它會自動刪除臨時文件,當文件被關閉討論的臨時文件模塊。 – MeterLongCat
@MeterLongCat如問題所說,CDO使用'tempfile',我需要*劇本完成之前刪除。不幸的是,我不能控制cdo在創建時傳遞給'TemporaryFile()'實例的參數。 –