在使用Python處理文件的是,對於文件的處理,都會經過三個步驟:打開文件->操作文件->關閉文件。但在有些時候,我們會忘記把文件關閉,這就無法釋放文件的打開句柄。這可能覺得有些麻煩,每次打開文件之后都要記得關閉,但我們按照以下方式,就可以避免忘記關閉文件操作的問題。
try: f = open('stanley_liu.log', 'w') #'w'模式打開,寫文件 print f.read() finally: #操作文件后執行此代碼塊 if f: f.close()
以上的這種方法確實能夠避免忘記關閉文件的問題,但是每次都很繁瑣,為了簡化這一操作,就可使用with open來實現。這和前面的try ... finally
是一樣的,但是代碼更佳簡潔,並且不必調用f.close()
方法。
with open('stanley_liu.log','w') as t: t.write('This is a test line') #和for、if一樣,這里的代碼保持縮進
這種寫法給人的感覺Python味十足,也更符合Pythonic的風格。對於with關鍵字,它可以在打開某些東西后,不管里面做了什么,with代碼塊結束之后,就可以調用這個對象的close函數,能夠有效的避免忘記關閉文件的操作。