Python學習筆記六:文件處理
一:打開文件
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學習筆記六:文件處理