Python自學筆記 14 檔案和檔案物件

2021-08-26 03:07:10 字數 2982 閱讀 5319

我在學習linux的檔案時,總結了乙個規律。面對乙個檔案時,要操作這個檔案首先就要開啟這個檔案,然後對其進行讀寫。當然這個讀寫的方式卻有很多。python內建了讀寫檔案的函式,用法和c是相容的。

在python內建的函式open用於開啟和建立檔案物件,如下所示:

fd = open("path")    #開啟檔案"path",path也可以是某個檔案的絕對路徑

fd = open("path", 'r') #以讀方式開啟檔案"path"

fd = open("path", 'w') #以寫方式開啟檔案"path"

上述例子只講了以文字模式開啟或者建立乙個檔案,那麼我們在實際開發中如果遇到這樣或者那樣的情況,下面我們分小節講述。

如果正在處理二進位制資料,可以將』b』附加到檔案模式後面,這樣做的後果是,將會禁用換行符轉換

fd = open("path", 'rb')

fd = open("path", 'wb')

#為了便於區別文字模式和二進位制模式通常也會加上't'來區別,以便於更清楚的表達意圖

fd = open("path", 'rt')

fd = open("path", 'wt')

我們在操作檔案,特別是列印log的時候使用最多的就是追加,你試想一下,每次寫log檔案你如果都把檔案清除了,那麼你這log列印的還有什麼意義呢?所以檔案追加是一種特別有用的方法。

fd = open("path", 'ra')

fd = open("path", 'wa')

r+為可讀寫兩種操作 w+為可讀寫兩種操作(會首先自動清空檔案內容) a+為追加讀寫兩種操作

【注意以上三種操作方式均不可同時進行讀寫操作】

以上述』w+』為例

path = 'g:/python/boke/test1.txt'

#該檔案中已經存有漢字若干

fd = open(path,'w+',encoding='utf-8')

fd.writelines('sdssdsd')

fd.close()

fd = open(path,'r+',encoding='utf-8')

for line in fd:

print(line) #本行**判斷是否會改變檔案內容

fd.close()

模式

可做操作

若檔案不存在

是否覆蓋

r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭報錯是

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

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

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

w只能寫建立是

wb以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案在檔案的開頭建立是

w+開啟乙個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案建立是

wb+以二進位制格式開啟乙個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。建立是

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

建立否,追加寫

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

建立否,追加寫

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

建立否,追加寫

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

建立否,追加寫

如果linux上編寫的指令碼必須處理由windows程式生成的文字檔案,而他們乙個有可能生成的換行符包含(『\n』, 『\r』 和』\r\n』),要處理這些檔案時python還提供了一種功能』u』和』ru』

#該功能可將不同的換行符編碼('\n', '\r' 和'\r\n')轉換為標準的'\n'字元,從而簡化跨平台工作

fd = open("path", 'u')

fd = open("path", 'ru')

方法

描述f.read([n])

最多讀取n個位元組

f.readline([n])

讀取單行輸入的最多n個字元。如果省略了n,該方法將讀取整行

f.readlines([size])

讀取所有行並返回乙個列表,size是可選的,用於指定在讀取操作停止前在檔案上讀取的近似字元數

f.write(s)

寫入字串s

f.writelines(lines)

寫入序列lines中的所有字串

f.close()

關閉檔案

f.tell()

返回檔案當前指標

f.seek(offset [,whence])

查詢新檔案位置

f.isatty()

如果f是個互動式終端,則返回1

f.flush()

清除輸出緩衝區

f.truncate([size])

將檔案截斷為最多size位元組

f.fileno()

返回乙個整數檔案描述符,如果關閉就發出valueerror異常

f.__next__()

返回下一行或引發stopiteration.在python2.7中對應的方法為f.next()

python學習筆記14(檔案讀寫)

讀檔案 python讀檔案流程 1 開啟檔案 2 讀檔案內容 3 關閉檔案 注釋 1 開啟檔案 open path,flag encoding errors path 要開啟檔案的路徑 路徑前加r flag 開啟方式 r 以唯讀的方式開啟檔案,檔案的描述符放在檔案的開頭 rb 以二進位制格式開啟乙個...

Python自學筆記(4) 檔案基本操作

今天的內容比較少,因為明天開始將是到重要的一塊 函式。不管哪種程式語言,函式既是基礎也是重難點。當把函式的內容學懂學透,將會迎來很大的進步與提高。正文 25 各種資料型別的轉換 元組 列表 list tuple 列表 元組 tuple list list str str.join list str ...

python 14 檔案操作

python中對檔案的讀寫也是非常方便的,本章節將講解讀 寫 讀寫等常用操作。下面講師必要的引數 1 檔案路徑 必須得知道檔案的路徑,不然怎樣進行讀寫?2 編碼方式 utf 8,gbk,gb2312.python3的str是unicode編碼儲存的,我們一般常用utf 8存在,編碼不了解的話容易出現...