2013-06-21 58 views
1

我想確保所有資源正在清理正確。這是做一個安全的事情:蟒蛇 - 創建一個空文件並關閉在一行

try: 
    closing(open(okFilePath, "w")) 
except Exception, exception: 
    logger.error(exception) 
    raise 

編輯:

逸岸,想着它,我甚至需要的try/catch,因爲我養例外反正我可以登錄在更高水平。如果在創建文件時出錯,可以認爲沒有什麼可以關閉的?

+0

您可以嘗試在類似filelike的對象的python中使用「with」contex。 – Denis

+3

一個班輪可能是'打開(okFilePath,'w +')。close()'? – karthikr

+0

@karthikr除非open引發異常,否則它不會被關閉。 '開放(path,'w +'):pass'可以在技術上表現在一行上,並且會處理異常。 –

回答

5

要確保文件在任何情況下都關閉,可以使用with語句。例如:

try: 
    with open(path_to_file, "w+") as f: 
     # Do whatever with f 
except: 
    # log exception 
+1

如果我不想對文件進行任何操作,該怎麼辦?我只是想創造它? – Cheetah

+2

@Ben:然後把'f'部分留下。 – martineau

+4

@Ben:...並改變'#做任何與f'線只是'通過'_或_所有放在一行'與打開(path_to_file,w +):pass'。 – martineau