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