with關閉檔案的其他open和上下文管理器

2021-10-02 10:56:14 字數 892 閱讀 6782

在檔案開啟的時候,如果出錯了檔案得不到及時關閉,open有檔案描述符,socket也有檔案描述符。不能進行無量的創造

因此不管產生不產生異常

預設建立檔案不會失敗

把他放到try裡邊,如果有一句產生了異常,拿著產生異常的型別到except裡找,找了後異常平息。

模型

try:

except:

else:

finally

有異常但是都不是的話就會奔潰。一般產生異常直譯器會自動處理就和沒寫try一樣。如果實在不知道異常是啥就寫exception(捕獲所有異常)

為了最終能把檔案關閉得寫**

即with

with語句到底幹什麼事?能夠保證不管出現什麼異常都能呼叫close

with到底什麼功能?

要明白with 就明白上下文管理器

上下文就是調函式之前是什麼,呼叫函式之後再回去

在 你的類中只要實現了enter()方法和exit()方法這樣方法都實現了就叫做上下文管理器

from contextlib import contextmanager

@context.manage(上下文管理器)

defmy_open

(path,mode)

: f =

open

(path,mode)

yield

f.close

with my_open(

'out.txt'

,'w'

)as f:

f.write(

"hello.the ******st context manager"

)

yield之前的是用with做的

yield的之後的是關閉

open檔案操作

基本方式 r 唯讀不寫 w 只寫模式,檔案不存在則建立,檔案存在則清空 x 只寫模式,不可讀,檔案不存在可以建立,檔案存在直接報錯。a 追加 不可讀,不存在則建立,存在可在尾部追加 假如 檔名是 db 內容 123456f open db r r 唯讀 date f.read read表示把檔案內容...

open檔案操作

open 做檔案操作的就是他 1.開啟檔案 f open db r 唯讀 f open db w 只寫 它清空檔案再寫 f open db x python3新加的,這個如果檔案存在報錯,不存在可以讓你建立並寫內容。f open db a a是追加 號表示同時讀寫乙個檔案 r 可讀寫 w 可讀寫 x...

檔案open函式的引數

這裡曾遇到過o trunc 這個引數,當時沒看明白啥意思,後來弄了個例子,英文不好的桑不起啊。int open char pathname,int access 為讀或寫開啟乙個檔案,按後按access來確定是讀檔案還是寫檔案,access值見下表 access值 意義 o rdonly 讀檔案 o...