標籤:close 一個 清空檔案 唯讀 pen 檔案控制代碼 列表 包含 run
1,open(),對檔案進行讀寫操作之前,要先開啟檔案,擷取檔案的控制代碼;
1、open(file_name[,access_mode][,buffering])
(1)參數說明file_name:一個包含了你要訪問的檔案路徑及檔案名稱的字串值。盡量使用絕對路徑access_mode:開啟檔案的方式:這個參數是非強制的,預設檔案訪問模式為唯讀(r)r,唯讀w:寫之前會清空檔案的內容a:追加的方式,在原本內容中繼續寫buffering:先寫到緩衝中如果buffering的值被設定為0,就不會有寄存;如果值為1,訪問檔案時會緩衝行;如果值位大於1的整數,表明了這就是寄存區的緩衝大小;如果取負值,寄存區的緩衝大小則為系統預設。該參數也是非強制性的。(2)傳回值該語句表示返回的File_object是一個指向檔案的指標(一個檔案對象)檔案控制代碼。
當以唯讀模式(r)開啟一個不存在的檔案時,就會報IOError異常(檔案不存在),但如果是以寫或
追加模式(w/a/a+)開啟一個不存在的檔案時,預設會建立該檔案,但如果是所在路徑中有目錄不存在,也會報IOError異常 建立一個檔案:fp=open(‘d:\\tmp\\01.txt‘,w ) #建立並開啟檔案01.txt,用寫的方式,檔案控制代碼賦給fp
2、檔案操作模式r,w,ar+:可讀可寫w+:開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。a+:開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。 rb wb ab 讀寫二進位
3,擷取檔案控制代碼後,就可以對檔案進行操作了,常用操作方法(1)fp.closed#判斷檔案是否已經關閉。返回true如果檔案已被關閉,否則返回false(2)fp.mode#輸出讀寫入模式。返回被開啟檔案的訪問模式。(3)fp.name#返迴文件的名稱。(4)fp.close()#重新整理緩衝區裡任何還沒寫入的資訊,並關閉該檔案,這之後便不能再進行寫入。(5)flush()#把緩衝區中的內容持久化寫到磁碟裡,緩衝區寫滿的情況,系統會自動調用flush()方法。(6)next()#返回下一行,並將檔案操作標記位移到下一行。把一個file用於for ... in file這樣的語句時,就是調用next()函數來實現遍曆的(7)seek(offset)#檔案指標移動到oofset位置,空標識移動到0位置(8)tell()#返迴文件操作標記的當前位置,以檔案的開頭為原點 ;(9)裁剪檔案truncate([size]) 用於截斷檔案,如果指定了選擇性參數 size,則表示截斷檔案為 size 個字元。 如果沒有指定 size,則從當前位置起截斷;截斷之後 size 後面的所有字元被刪除。 f1.truncate()#清空檔案
4,檔案的讀寫(1)read([size]) #size:讀取的長度,以byte為單位。如果不指定參數,表示一次性讀取全部內容,以字串形式返回,並且每一行結尾會有一個"\n"符號(2)readline([size]) #調一次讀取一行,如果給定了size,有可能返回的只是一行的一部分,以字串的形式返回,並且結尾會有一個分行符號"\n"。讀完一行,檔案操作標記移動到下一行的開頭。返回的是字串
(3)readlines([size])
###讀取檔案的全部內容,這個函數的內部是通過迴圈調用readline()來實現的,返回的是列表格式,每一行是列表的一個元素,並且結尾會有一個分行符號"\n"
(4)write(str) #把str寫到檔案中,write()並不會在str後加上一個分行符號 ,
只能寫字串(5)writeline()#每次唯寫入一行
(5)writelines(seq)
seq:把seq(序列)的內容全部寫到檔案中(多行一次性寫入)。也不會自動加入分行符號。注意:writelines()方法是針對
列表的操作。它接收一個
字串列表作為參數,也就是seq是一個列表
Python基礎檔案讀寫操作