標籤:其他 磁碟 訪問 buffer 起點 lines 字元 str 實現
一:開啟檔案
open(name,mode,[bufferSize])
name:檔案路徑
mode:檔案開啟檔案
二:檔案讀取
read()方法:可以一次讀取檔案的全部內容,Python把內容讀到記憶體,用一個str對象表示。
readline([size]):如果不傳參,一次預設讀取一行。如果size<一行長度,則讀取size個位元組。如果size>一行長度,則唯讀取一行。
readlines():一次讀取io.DEFAULT_BUFFER_SIZE行,約586行,以字串數組的形式返回讀取結果。
迭代讀取:可以使用iter(file)函數把開啟的檔案轉換為可迭代對象,然後有for...in 迭代訪問,每次迭代讀取一行。
file=open("filename.txt",‘r+‘)iter_f=iter(file)for str in iter_f: 使用str
三:檔案寫入
write(str):把str寫入檔案。注意:必須是寫字串。如果寫其他內容,請轉換為字串再寫入。
writelines(some_str):參數可以是字串元組、或者可迭代的字串對象
寫緩衝與寫磁碟:
在調用了write(str)/writelines(some_str)後,只是把寫的內容寫入到了記憶體中,此時還沒有更新到檔案。
需要顯式 f.flush()或f.close()強制把記憶體中的快取資料刷入磁碟才可以把資料寫入磁碟中。
當寫入緩衝中的資料大於緩衝區容量時,Python解譯器會自動重新整理緩衝區把資料寫入磁碟,緩衝區大小為155648位元組。
四:檔案指標與隨機讀寫
在Python中,寫入資料後不能立即讀取,必須關閉檔案重寫開啟才可以;並且讀取過的內容,不能再次讀取到。這是因為檔案指標移動的原因:檔案開啟時,檔案指標指向檔案開頭,此時執行read/write操作會移動檔案指標,進行讀寫。一次讀寫完成後,指標會停留在該次操作的結束處。下一次調用讀寫時,會接著上次停止的地方繼續移動檔案指標進行讀寫。
隨機讀寫的實現:瞭解了檔案指標的移動原理後,我們就可以自己控制指標的移動,去讀寫檔案中我們想要操作的位置了。
檔案指標移動指令:file.seek(位移量,起點位置)
起點位置有三種:os.SEEK_SET(檔案開頭)、os.SEEK_END(檔案結尾)、os.SEEK_CUR(檔案指標當前位置)
位移量:可以是正數,也可以是負數。正數下移,負數前移。如果移動範圍超過檔案範圍則報錯。
五:檔案關閉
f.close()
檔案操作完畢要關閉的原因:
1:強制把寫入檔案的資料刷入磁碟
2:系統中允許每個進程同時開啟的檔案數是有限的
Python學習筆記六:檔案處理