2013-08-16 78 views

回答

5

如果可能,請打開with語句中的文件,或者使用try語句與finally塊關閉文件。如果您使用tempfile,關閉時文件將自動銷燬;否則,您可能需要在finally區塊中自行刪除它們。

+2

使用'嘗試:最後:'語法是非常有用的,因爲如果你的程序退出出於不同的原因不是'KeyboardInterrupt'(比方說,一個例外),你仍然可以得到您的臨時。文件已刪除。 –

+0

@JosephDunn:+1。使用'with'或'try:finally:'或'tempfile'代替'try:除了:'_also_意味着你可以取消大部分可能已經寫入成功案例的手動清理,使得代碼更簡單。 – abarnert

+0

順便說一句,'tempfile'使得Unix下的所有東西都變得非常簡單,只要你選擇正確的類......但在Windows中,很多情況仍然是一種痛苦。 (但是,與通過手動方式執行操作相比,通常還是要少一些痛苦。) – abarnert

0

可以捕捉和處理KeyboardInterrupt,或設置退出處理程序atexit。另外,tempfile