函式open()返回檔案物件,通常的用法需要兩個引數open(filename,mode)
f =
open
('e:/demo.txt'
,'r'
);
第乙個引數是乙個含有檔名的字串。第二個引數也是乙個字串,含有描述如何使用該檔案的幾個字元。mode 為 『r』 時表示只是讀取檔案; 『w』 表示只是寫入檔案(已經存在的同名檔案將被刪掉); 'a』表示開啟檔案進行追加,寫入到檔案中的任何資料將自動新增到末尾。 『r+』 表示開啟檔案進行讀取和寫入。mode 引數是可選的,預設為 『r』。
模式後面的 『b』 以 二進位制模式 開啟檔案:資料會以位元組物件的形式讀出和寫入。這種模式應該用於所有不包含文字的檔案。
在文字模式下,讀取時缺省會將平台有關的行結束符(unix上是 \n , windows上是 \r\n )轉換為 \n 。在文字模式下寫入時,缺省會將出現的 \n 轉換成平台有關的行結束符。這種暗地裡的修改對 ascii 文字檔案沒有問題,但會損壞 jpeg 或 exe 這樣的二進位制檔案中的資料。使用二進位制模式讀寫此類檔案時要特別小心
要讀取檔案內容,需要呼叫 f.read(size) ,該方法讀取若干數量的資料並以字串形式返回其內容,size 是可選的數值,指定字串長度。如果沒有指定 size 或者指定為負數,就會讀取並返回整個檔案。當檔案大小為當前機器記憶體兩倍時,就會產生問題。反之,會盡可能按比較大的 size 讀取和返回資料。如果到了文
件末尾, f.read() 會返回乙個空字串(』 ')
f.readline() 從檔案中讀取單獨一行,字串結尾會自動加上乙個換行符( \n ),只有當檔案最後一行沒有以換行符結尾時,這一操作才會被忽略。這樣返回值就不會有混淆,如果 f.readline() 返回乙個空字串,那就表示到達了檔案末尾,如果是乙個空行,就會描述為 『\n』 ,乙個只包含換行符的字串
可以通過迴圈遍歷檔案物件來獲取檔案的每一行
f.write(string) 方法將 string 的內容寫入檔案,並返回寫入字元的長度
f =
open
('e:/demo.txt'
,'r+'
)print
(f.write(
'this is a test\n'
))
想要寫入其他非字串內容,首先要將它轉換為字串
value =
('answer',42
)s =
str(value)
f.write(s)
f.tell() 返回乙個整數,代表檔案物件在檔案中的指標位置,該數值計量了自檔案開頭到指標處的位元數。需要改變檔案物件指標的話,使用 f.seek(offset,from_what) 。指標在該操作中從指定的引用位置移動offset 位元,引用位置由 from_what 引數指定。 from_what 值為 0 表示自檔案起始處開始,1 表示自當前檔案指標位置開始,2 表示自檔案末尾開始。from_what 可以忽略,其預設值為零,此時從檔案頭開始
在文字檔案中(沒有以 b 模式開啟),只允許從檔案頭開始尋找(有個例外是用 seek(0, 2) 尋找檔案的最末尾處)而且合法的 偏移 值只能是 f.tell() 返回的值或者是零。其它任何 偏移 值都會產生未定義的行為
當你使用完乙個檔案時,呼叫 f.close() 方法就可以關閉它並釋放其占用的所有系統資源。 在呼叫
f.close() 方法後,試圖再次使用檔案物件將會自動失敗
關鍵字 with 處理檔案物件是個好習慣。它的先進之處在於檔案用完後會自動關閉,就算發生異常也沒關
系。它是 try-finally 塊的簡寫
with
open
('e:/demo.txt'
,'r'
)as f:
print
(f.read())
f.close(
)
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 只...