亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

with as 遇到異常之后,到底能不能關閉文件呢?

遇到異常之后,with as 到底能不能關閉文件呢?

正在回答

4 回答

我覺得不能,所以用with-as操作文件時,最好用try-except捕獲可能發生的異常,只有有了try-except文件才能保證一定被關閉,當沒有try-except捕獲異常時,一旦異常發生,異常就被提交給python解釋器了,導致程序不再向下執行,故文件未關閉

0 回復 有任何疑惑可以回復我~
#1

慕粉3830120

with as 實質是調用上下文協議,不管有沒有錯誤,一定要調用__exit__函數,而視頻也說了,執行完該函數后關閉文件
2018-10-12 回復 有任何疑惑可以回復我~

自己運行一下代碼就知道了

try:
? ?with open('t1.txt', 'r') as f1:
? ? ? ?cont = f1.read()
? ? ? ?print int(cont)
? ? ? ?print "f1 qushiba"

except:
? ?print 'file expection'

print f1.closed

0 回復 有任何疑惑可以回復我~
#1

Dieter_Lan

我覺得的是能關閉
2017-09-10 回復 有任何疑惑可以回復我~
#2

hehehehehehehehe 回復 Dieter_Lan

你這里都設置了異常了,肯定會關閉的!去掉try試了下,不能關閉
2018-02-23 回復 有任何疑惑可以回復我~

不管有沒有異常 都會先自動關閉文件 如果沒有設置try except來捕獲該異常 就會由python解釋器拋出異常了

0 回復 有任何疑惑可以回復我~

在文件不存在的情況下,不能正常關閉文件,所以這是with ?as語句的一個問題,需要加新的try except語句來catch f.seek產生的valueError(起始值不能是-5)

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Python錯誤和異常
  • 參與學習       31651    人
  • 解答問題       32    個

讓我們一起來學習Python對于錯誤和異常的處理方式

進入課程

with as 遇到異常之后,到底能不能關閉文件呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號