Python 檔案處理

來源:互聯網
上載者:User

標籤: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 檔案處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.