在檔案開啟的時候,如果出錯了檔案得不到及時關閉,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...