file = open("test.txt","r")
for line in file.readlines():
print line
file.close()
這樣直接開啟檔案,如果出現異常,如讀取過程中檔案不存在或異常,則直接出現錯誤,close方法無法執行,檔案無法關閉
with open("test.txt","r") as file:
for line in file.readlines():
print line
用with語句的好處,就是到達語句末尾時,會自動關閉檔案,即便出現異常。
with語句實際上是乙個非常通用的結構,允許你使用所謂的上下文管理器。上下文管理器是支援兩個方法的物件:__enter__和__exit__。
方法__enter__不接受任何引數,在進入with語句時被呼叫,其返回值被賦給關鍵字as後面的變數。
方法__exit__接受三個引數:異常型別、異常物件和異常跟蹤。它在離開方法時被呼叫(通過前述引數將引發的異常提供給它)。如果__exit__返回false,將抑制所有的異常。
檔案也可用作上下文管理器。它們的方法__enter__返回檔案物件本身,而方法__exit__關閉檔案
file= open("test.txt","r")
try:
for line in file.readlines():
print line
except:
print "error"
finally:
file.close()
with語句作用效果相當於上面的try-except-finally with open as是什麼意思
進行一次檔案的讀取,在匯入os模組的前提下,主要需要以下 f open try.txt r print f.read f.close 這裡涉及到乙個問題,如果檔案 try.txt 不存在,那麼就會報錯,無法執行f.close操作,持續占用記憶體。如何解決這個問題?利用異常處理辦法,將關閉檔案的指令放...
open和fopen的區別
1.緩衝檔案系統 緩衝檔案系統的特點是 在記憶體開闢乙個 緩衝區 為程式中的每乙個檔案使用,當執行讀檔案的操作時,從磁碟檔案將資料先讀入記憶體 緩衝區 裝滿後再從記憶體 緩衝區 依此讀入接收的變數。執行寫檔案的操作時,先將資料寫入記憶體 緩衝區 待記憶體 緩衝區 裝滿後再寫入檔案。由此可以看出,記憶...
open和fopen的區別
open和fopen的區別 1.緩衝檔案系統 緩衝檔案系統的特點是 在記憶體開闢乙個 緩衝區 為程式中的每乙個檔案使用,當執行讀檔案的操作時,從磁碟檔案將資料先讀入記憶體 緩衝區 裝滿後再從記憶體 緩衝區 依此讀入接收的變數。執行寫檔案的操作時,先將資料寫入記憶體 緩衝區 待記憶體 緩衝區 裝滿後再...