Python有關檔案讀寫

2021-10-16 12:14:49 字數 2849 閱讀 3463

python內建了讀寫檔案的函式,用法和c是相容的。本文介紹內容大致有:檔案的開啟/關閉、檔案物件、檔案的讀寫等。本文僅示例介紹 txt 型別文件的讀寫,也就是最基礎的檔案讀寫,也需要注意編碼問題。

看以下示例就能了解 python 的 open() 及 close() 函式。這邊呼叫 read()方法可以一次讀取檔案的全部內容,python把內容讀到記憶體,用乙個str物件表示,具體使用參見下文。

在 e 盤 python_file 資料夾下新建一 a.txt,輸入隨意,如下:

python 操作 開啟及關閉方式 如下:

注意 open() 之後 一定要 close()。但由於檔案讀寫時都可能產生ioerror,為了保證無論是否出錯都能正確地關閉檔案,我們用 try ... finally 來實現:

python 簡化了改寫法,即用 with open(...) as ...  ; 建議之後檔案讀寫都用該寫法:

上面,你肯定注意到了引數 "r";該引數決定了開啟檔案的模式:唯讀,寫入,追加等。所有可取值見如下的完全列表。這個引數是非強制的,預設檔案訪問模式為唯讀(r)。

模式描述

r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。

rb以二進位制格式開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。

r+開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

rb+以二進位制格式開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

w開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

wb以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

w+開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

wb+以二進位制格式開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

a開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

ab以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

a+開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

ab+以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

file 為一物件,它有一些內建屬性,如下

檔案物件屬性

描 述file.closed

表示檔案已經被關閉,否則為false

file.mode

access檔案開啟時使用的訪問模式

file.encoding

檔案所使用的編碼

file.name

檔名file.newlines

未讀取到行分隔符時為none,只有一種行分隔符時為乙個字串,當檔案有多種型別的行結束符時,則為乙個包含所有當前所遇到的行結束的列表

file.softspace

為0表示在輸出一資料後,要加上乙個空格符,1表示不加。這個屬性一般程式設計師用不著,由程式內部使用

之前的例子已經接觸到了 read() 函式,該函式會一次性讀取檔案的全部內容,如果能確保檔案的大小,自然可以。但若檔案過大,記憶體就爆了,所以,可以反覆呼叫read(size)方法,每次最多讀取size個位元組的內容;也可呼叫 readline() 每次讀取一行內容;而呼叫readlines()可以一次讀取所有內容並按行返回list。總之,根據需求來。僅以 txt 檔案為例,其他的檔案讀取需要特殊處理;另外,檔案的格式編碼方式也需要注意,這裡僅介紹讀取方法。

在d:\python_file 下新建 poet.txt;示例如下,由於乙個中文會佔多個位元組,故read(size) 部分會亂碼,如:

寫檔案和讀檔案是一樣的,唯一區別是呼叫open()函式時,傳入識別符號'w'或者'wb'表示寫文字檔案或寫二進位制檔案;'a' 對應的表示追加等。

如下示例,由於 write.txt 檔案不存在,建立該檔案並寫入:

在上例基礎上,繼續,該檔案被重寫:

採用「w」的方式,檔案中的內容會被重寫覆蓋。繼續,這次使用追加的方式,會在檔案結尾追加輸入內容:

Python檔案讀寫

今天在看python檔案讀寫操作,發現python file name mode buffering file 函式用於建立乙個file物件,它有乙個別名叫open 可能更形象一些,它們是內建函式。來看看它的引數。它引數都是以字串的形式傳遞的。name是檔案的名字。mode 是開啟的模式,可選的值為...

python檔案讀寫

檔案讀寫模式 模式 描述 r以讀方式開啟檔案,可讀取檔案資訊。w以寫方式開啟檔案,可向檔案寫入資訊。如檔案存在,則清空該檔案,再寫入新內容 a以追加模式開啟檔案 即一開啟檔案,檔案指標自動移到檔案末尾 如果檔案不存在則建立 r 以讀寫方式開啟檔案,可對檔案進行讀和寫操作。w 消除檔案內容,然後以讀寫...

python 讀寫檔案

python讀寫檔案在文字不大的情況可以用正常的 open 然後讀入 readline行讀入 或者整體讀入 read readlines 基本知識 file open path,r 說明 第乙個引數是檔名稱,包括路徑 第二個引數是開啟的模式mode r 唯讀 預設。如果檔案不存在,則丟擲錯誤 w 只...