我找到了很多關于這個話題的文章,但我并不清楚在python中打開和關閉檔案的正確或最安全的方式。也許在Python中還有更多使用檔案的方法,但我最常遇到的是這兩種方法:
示例1:在Python中打開和關閉檔案。
示例1: 示例2: 據我所知,唯一的區別是,你可以在try...final塊中引發例外。這是正確的嗎,還是有更多的不同?還有一個問題,哪種方式才是正確的?我真的很感謝任何形式的幫助或建議,Sheers!
uj5u.com熱心網友回復: 最Pythonic的方法和良好的做法是使用 而且你是正確的,唯一的區別是 是你可以在finally塊中有一個自定義的行為。 注意使用 IOBase也是一個背景關系管理器,因此支持with陳述句。在這個例子中,檔案在with陳述句的套件完成后被關閉--即使發生了例外 uj5u.com熱心網友回復: 一般來說,從python檔案這里 with-statement是在這里使用的理想方法,尤其是它提供了許多選項(所以你也可以在這里引發例外,或者檢查一切是否按計劃進行) with-statement也允許自定義回呼 它有一些額外的方法與背景關系管理器,可以更有用。 因此,簡而言之,如果你只是使用with陳述句而不使用任何進一步的函式,它基本上可以確保資源被關閉(這里是指資料流),同時它還為你提供了跟蹤關閉狀態的選項,比通常的try/finally塊有更多選擇。
我強烈建議通過該鏈接了解更多資訊。
標籤: 上一篇:安卓11存盤訪問和Java檔案庫
下一篇:Cstrcat將垃圾插入字串中
with open("example.txt"/span>, "r"/span>) as f:
# do things
f = open("example.txt"/span>, "r")
try:
# 做事: 嘗試: 試試吧。
finally:
f.close()
with陳述句打開檔案:with open("example.txt"/span>, "r"/span>) as f:
# 做事
f = open("example.txt"/span>, "r"/span>)
try:
# 做事: 嘗試: 試試吧。
finally:
f.close()
with open("example.txt", "r") 作為 f: Python 內部的行為與你的 try-finally 塊非常相似,因為 檔案指出:
__exit__和__enter__的額外引數以獲得行程的當前狀態。
