python的with語句怎麼使用
with語句處理異常
我們知道使用try-except-finally語句可以處理異常,接下來我們介紹使用with語句處理與異常相關的工作
with語句支援建立資源,丟擲異常,釋放資源等操作,並且程式碼簡潔。
with語句格式
with 上下文表示式 [as 資源物件]: 物件操作 說明:
上下文表示式,返回一個上下文管理物件
如果指定了as語句,該物件並不賦值給as子句中的資源物件,而是將上下文管理器的__enter__()方法的返回值賦值給了資源物件。
資源物件可以是單變數,也可以是元組。
使用with語句操作檔案物件
with open("/test.txt") as file: for aline in file: print(aline)
解釋說明: 這段程式碼使用with語句開啟檔案,如果順路開啟,則將檔案物件賦值給file,然後用for語句遍歷列印檔案的每一行。當檔案操作結束後,with語句關閉檔案。如果這段程式碼執行過程中發生異常,with也會將檔案關閉。
這段程式碼使用finally語句實現如下:
try: file = open("/test.txt") try: for aline in file: print(aline) except Exception as error: print(error) finally: file.close() except FileNotFoundError as err: print(err)
我們也可以給with語句加上異常處理:
try: with open("/test.txt") as file: for aline in file: print(aline) except Exception as error: print(error)
透過對比可以發現:with語句在進行異常處理時程式碼簡潔很多
特別說明:
不是所有的物件都可以使用with語句,只有支援上=上下文管理協議的物件才可以。目前支援上下文管理協議的物件如下:
file decimal.Context thread.LockType threading.BoundedSemaphore threading.Condition threading.Lock threading.RLock threading.Semaphore
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2001/viewspace-2836289/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Python的if語句多層巢狀怎麼使用Python巢狀
- python怎麼寫try語句Python
- python的輸出語句怎麼寫Python
- Python 迴圈語句的使用Python
- Python中if條件判斷語句怎麼用?Python
- Python3 goto 語句的使用PythonGo
- python迴圈語句判斷的使用Python
- python怎樣執行js語句PythonJS
- Python with 語句的用法Python
- Python中break語句和continue語句有什麼區別?Python
- group by 語句怎麼最佳化?
- order by 語句怎麼最佳化?
- 說說 Python 的 if 語句Python
- Python的迴圈語句Python
- python中try..except語句如何使用?Python
- python 控制語句Python
- python-with語句Python
- python分支語句Python
- MySQL join語句怎麼最佳化?MySql
- python中if語句的用法及if-else結構的使用Python
- 5、控制語句的使用
- 判斷語句的使用
- Python-條件語句和迴圈語句Python
- python基礎語法—語句Python
- Python基礎-if,for語句Python
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- php中return語句的使用PHP
- MySQL中explain語句的使用MySqlAI
- MySQL 執行DDL語句 hang住了怎麼辦?MySql
- python之判斷語句Python
- Python if else條件語句Python
- Python語言的全排列怎麼提速?Python
- 為什麼使用縮排來分組語句?15個為什麼,幫助你更好的理解Python!Python
- 【Python基礎知識】Python中的while語句PythonWhile
- 使用withopen語句(未完)
- c語言中,while(1)語句使用break語句跳出迴圈C語言While
- SQL 語句寫的爛怎麼辦?我幫你解決?SQL
- Python語言怎麼樣?為什麼學Python?Python