標籤:name seek int 進位 html offset python3 com body
檔案是日常編程中常用的操作,通常用於儲存資料或應用系統的參數
文法:
open(filename,mode)
參數:
filename:要訪問的檔案名稱
mode:開啟檔案的模式
一、關於open模式
模式 |
說明 |
r |
以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。 |
w |
開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
a |
開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
rb |
以二進位格式開啟一個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。 |
wb |
以二進位格式開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
ab |
以二進位格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。 |
r+ |
開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 |
w+ |
開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
a+ |
開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。 |
rb+ |
以二進位格式開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭。 |
wb+ |
以二進位格式開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。 |
ab+ |
以二進位格式開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。 |
1、 讀模式
讀模式r,以唯讀方式開啟檔案,檔案的指標會放在檔案的開頭。這是預設模式
f = open(‘test.txt‘,‘r‘,encoding=‘UTF-8‘) #唯讀方式,encoding是轉碼的意思,告訴解譯器以UTF-8的編碼格式i = f.read() #讀取檔案,並賦值給iprint(i)f.close() #關閉檔案
2、寫入模式
寫入模式 w,開啟一個檔案只用於寫入。如果該檔案已存在則將其覆蓋,如果該檔案不存在,建立新檔案
f = open(‘test.txt‘,‘w‘,encoding=‘UTF-8‘)f.write(‘\n這是寫入的‘)f.close()
3、追加模式
追加 a 開啟一個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾,如果該檔案不存在,建立新檔案進行寫入
f = open(‘test.txt‘,‘a‘,encoding=‘UTF-8‘)f.write(‘這是寫入的‘) #寫入print("定位之前的游標位置:%s" % (f.tell()))f.flush() #使記憶體的內容重新整理至檔案f.seek(0) #因為W+讀取檔案之後會定位在檔案尾部,所以需要重新置放一下游標位置print("定位之後的游標位置:%s" % (f.tell()))f.close()
4、讀寫入模式
讀寫入模式 r+,開啟一個檔案用於讀寫。檔案指標將會放在檔案的開頭
f = open(‘test.txt‘,‘r+‘,encoding=‘UTF-8‘) #讀寫方式i = f.read()print(i)f.write(‘\n這是寫入的‘) #寫入f.close()
5、 讀寫入模式
讀寫入模式 w+ ,開啟一個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案
f = open(‘test.txt‘,‘w+‘,encoding=‘UTF-8‘)f.write(‘這是寫入的‘) #寫入print("定位之前的游標位置:%s" % (f.tell()))f.flush() #使記憶體的內容重新整理至檔案f.seek(0) #因為W+讀取檔案之後會定位在檔案尾部,所以需要重新置放一下游標位置print("定位之後的游標位置:%s" % (f.tell()))i = f.read()print(i)f.close()
6、 讀寫入模式
追加讀 a+開啟一個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾,檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫
f = open(‘test.txt‘,‘a+‘,encoding=‘UTF-8‘)f.write(‘這是寫入的‘) #寫入print("定位之前的游標位置:%s" % (f.tell()))f.flush() #使記憶體的內容重新整理至檔案f.seek(0) #因為W+讀取檔案之後會定位在檔案尾部,所以需要重新置放一下游標位置print("定位之後的游標位置:%s" % (f.tell()))i = f.read()print(i)f.close()
二、常用的函數
序號 |
方法及描述 |
1 |
file.close() 關閉檔案。關閉後檔案不能再進行讀寫操作。 |
2 |
file.flush() 重新整理檔案內部緩衝,直接把內部緩衝區的資料立刻寫入檔案, 而不是被動的等待輸出緩衝區寫入。 |
3 |
file.fileno() 返回一個整型的檔案描述符(file descriptor FD 整型), 可以用在如os模組的read方法等一些底層操作上。 |
4 |
file.isatty() 如果檔案串連到一個終端裝置返回 True,否則返回 False。 |
5 |
file.next() 返迴文件下一行。 |
6 |
file.read([size]) 從檔案讀取指定的位元組數,如果未給定或為負則讀取所有。 |
7 |
file.readline([size]) 讀取整行,包括 "\n" 字元。 |
8 |
file.readlines([sizeint]) 讀取所有行並返回列表,若給定sizeint>0,返回總和大約為sizeint位元組的行, 實際讀取值可能比 sizeint 較大, 因為需要填充緩衝區。 |
9 |
file.seek(offset[, whence]) 設定檔案當前位置 |
10 |
file.tell() 返迴文件當前位置。 |
11 |
file.truncate([size]) 從檔案的首行首字元開始截斷,截斷檔案為 size 個字元,無 size 表示從當前位置截斷;截斷之後 V 後面的所有字元被刪除,其中 Widnows 系統下的換行代表2個字元大小。 |
12 |
file.write(str) 將字串寫入檔案,沒有傳回值。 |
13 |
file.writelines(sequence) 向檔案寫入一個序列字串列表,如果需要換行則要自己加入每行的換行 |
Python 檔案處理