python 讀寫檔案及檔案物件的方法

2022-06-09 17:12:11 字數 2196 閱讀 3090

1、讀寫檔案:

open() 返回乙個file object,最常用的有兩個引數:open(filename, mode)。

f = open('

workfile

', '

w')

第乙個引數是包含檔名的字串。第二個引數是另乙個字串,其中包含一些描述檔案使用方式的字元。 mode 可以是 'r' ,表示檔案只能讀取,'w' 表示只能寫入(已存在的同名檔案會被刪除),還有 'a' 表示開啟檔案以追加內容;任何寫入的資料會自動新增到檔案的末尾。'r+' 表示開啟檔案進行讀寫。mode引數是可選的;省略時預設為 'r'。

在處理檔案物件時,最好使用 with 關鍵字。優點是當子句體結束後檔案會正確關閉,即使在某個時刻引發了異常。而且使用 with 相比等效的 try-finally **塊要簡短得多:

with open('

e:test/1.txt

') as f:

read_data =f.read()

#we can check that the file has been automatically closed.

print(f.closed )

true

注:如果你沒有使用 with 關鍵字,那麼你應該呼叫 f.close() 來關閉檔案並立即釋放它使用的所有系統資源。

2、檔案物件的方法要讀取檔案內容,請呼叫f.read(size),它會讀取一些資料並將其作為字串(在文字模式下)或位元組串物件(在二進位制模式下)返回。size 是乙個可選的數值引數。當 size 被省略或者為負數時,將讀取並返回 整個檔案的內容;如果檔案的大小是你的機器記憶體的兩倍就會出現問題。當取其他值時,將讀取並返回至多 size 個字元(在文字模式下)或 size 個位元組(在二進位制模式下)。如果已到達檔案末尾,f.read() 將返回乙個空字串('')。

f.readline()從檔案中讀取一行;換行符(\n)留在字串的末尾,如果檔案不以換行符結尾,則在檔案的最後一行省略。這使得返回值明確無誤;如果f.readline() 返回乙個空的字串,則表示已經到達 了檔案末尾,而空行使用 '\n' 表示,該字串只包含乙個換行符。

要從檔案中讀取行,你可以迴圈遍歷檔案物件。這是記憶體高效,快速的,並簡化**:

如果你想以列表的形式讀取檔案中的所有行,你也可以使用 list(f) 或 f.readlines()。 

f.write(string)會把 string 的內容寫入到檔案中,並返回寫入的字元數。:

在寫入其他型別的物件之前,需要先把它們轉化為字串(在文字模式下)或者位元組物件(在二進位制模式下)

f.tell()返回乙個整數,給出檔案物件在檔案中的當前位置,表示為二進位制模式下時從檔案開始的位元組 數,以及文字模式下的意義不明的數字。 要改變檔案物件的位置,請使用f.seek(offset, whence)。通過向乙個參考點新增 offset 來計算位置; 參考點由 whence 引數指定。whence 的0值表示從檔案開頭起算,1表示使用當前檔案位置,2表示使用檔案末尾作為參考點。whence 如果省略則預設值為0,即使用檔案開頭作為參考點。

在文字檔案(那些在模式字串中沒有 b 的開啟的檔案)中,只允許相對於檔案開頭搜尋(使用 seek(0, 2)搜尋到檔案末尾是個例外)並且唯一有效的offset 值是那些能從f.tell()中返回的或者是零。其他offset 值都會產生未定義的行為。

檔案物件有一些額外的方法,例如 isatty() 和 truncate() ,它們使用頻率較低

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 只...