淺談Python上下文管理
什麼是with語句
- with是一種上下文管理協議,目的在於從流程圖中把 try,except 和finally 關鍵字和資源分配釋放相關代碼統統去掉,簡化try….except….finlally的處理流程。
- 所以使用with處理的對象必須有enter()和exit()這兩個方法
1)with通過enter方法初始化(enter方法在語句體執行之前進入運行)
2)然後在exit中做善後以及處理異常(exit()方法在語句體執行完畢退出後運行)
with語句使用場景
- with 語句適用於對資源進行訪問的場合,確保不管使用過程中是否發生異常都會執行必要的“清理”操作,釋放資源
- 比如文件使用後自動關閉、線程中鎖的自動獲取和釋放等。
with處理文件操作的實例
with open('/etc/passwd') as f:
for line in f:
print(line)
# 這段代碼的作用:打開一個文件,如果一切正常,把文件對象賦值給f,然後用迭代器遍歷文件中每一行,當完成時,關閉文件;
# 而無論在這段代碼的任何地方,如果發生異常,此時文件仍會被關閉。