有些任務,可能事先設置,時候作清理工做,以下面一段程序:python
f = open('tmp.txt') data = f.read() print(data)
是否是忘了什麼?沒錯,很明顯忘記關閉文件句柄。另外,對文件讀取可能發生的異常在程序中沒有作任何處理。下面使用 try except finally來處理,code
f = open('tmp.txt') try: data = f.read() print(data) except BaseException as msg: print(msg) finally: f.close()
雖然這段代碼運行良好,但太過冗長,這裏使用 with as 來寫是這樣的,it
with open('tmp.txt') as f: data = f.read() print(data)