讀寫文件是最常見的IO操作。Python內置了讀寫文件的函數,用法和C是兼容的。
讀寫文件前,我們先必須瞭解一下,在磁盤上讀寫文件的功能都是由操作系統提供的,現代操作系統不允許普通的程序直接操作磁盤,所以,讀寫文件就是請求操作系統打開一個文件對象(通常稱為文件描述符),然後,通過操作系統提供的接口從這個文件對象中讀取數據(讀文件),或者把數據寫入這個文件對象(寫文件)。
文件格式
函數open: open(name,[,mode[,buffering]]) ------>文件名,模式,緩衝,後兩者時可選內容。
模式參數常用值:
緩衝參數:
文件對象(類文件對象):稱為流。
讀與寫
注意:不需要提前創建文件,這裡write/read可以直接創建新文件並寫入/讀取。
寫文件的同時會創建一個名字叫a.txt的文件,你需要指定絕對路徑。
f.close() 是很重要的,一定要記得寫上。
讀取的順序是依次進行的,先4然後繼續往下,不會從頭計算,上面也不寫就直接read剩餘的。
文件定位
tell()方法告訴你文件內的當前位置, 換句話說,下一次的讀寫會發生在文件開頭這麼多字節之後。
seek(offset [,from])方法改變當前文件的位置。Offset變量表示要移動的字節數。From變量指定開始移動字節的參考位置。
如果from被設為0,這意味著將文件的開頭作為移動字節的參考位置。如果設為1,則使用當前的位置作為參考位置。如果它被設為2,那麼該文件的末尾將作為參考位置。
讀寫行:
readline:後不加參數,會一直讀取到換行符為止。同時也會讀出換行符。
加參數:讀取字符的最大值。
readlines:讀取一個文件所有行,並以列表返回。
write:(沒有writeline方法。)
writelines:與readlines相反,傳給它一個列表(或任何序列。)它都會把所有字符串寫入文件。
注:程序不會增加新行,需要自己添加。
關閉文件:
close()方法。
f=open()
f.write()
f.close()
確保文件被關閉,用try/finally語句。如下圖例子所示:
專門語句:with語句,文件在語句結束會自動關閉。
with open('/path/to/file', 'r') as f:
print(f.read())