python的檔案訪問

2021-08-19 03:48:41 字數 3120 閱讀 6110

python可以通過建立乙個屬於 file 類的物件並適當使用它的 read 、 readline 、 write 方法

來開啟或使用檔案,並對它們進行讀取或寫入。讀取或寫入檔案的能力取決於你指定以何種

方式開啟檔案。最後,完成了檔案,你可以呼叫 close 方法來告訴 python 我們已經完

成了對該檔案的使用。

ok ,我們來看一下例項

poem = '''\

programming is fun

when the work is done

if you wanna make your work also fun:

use python!

'''f = open('poem.txt','w')

f.write(poem)

f.close()

f = open('poem.txt')

while true:

line = f.readline()

if len(line)==0:

break

else:

print(line)

f.close()

對於 open(filename,mode)函式,下面對mode引數做詳細接介紹

不同模式開啟檔案的完全列表:

模式

描述

r

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

rb

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

r+

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

rb+

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

w

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

wb

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

w+

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

wb+

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

a

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

ab

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

a+

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

ab+

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

為了讀取乙個檔案的內容,呼叫 f.read(size), 這將讀取一定數目的資料, 然後作為字串或位元組物件返回。

size 是乙個可選的數字型別的引數。 當 size 被忽略了或者為負, 那麼該檔案的所有內容都將被讀取並且返回。

f.readline() 會從檔案中讀取單獨的一行。換行符為 '\n'。f.readline() 如果返回乙個空字串, 說明已經已經讀取到最後一行。

f.readlines() 將返回該檔案中包含的所有行。

如果設定可選引數 sizehint, 則讀取指定長度的位元組, 並且將這些位元組按行分割。

f.write(string) 將 string 寫入到檔案中, 然後返回寫入的字元數。

f.tell() 返回檔案物件當前所處的位置, 它是從檔案開頭開始算起的位元組數。

在文字檔案中 (那些開啟檔案的模式下沒有 b 的), 只會相對於檔案起始位置進行定位。

當你處理完乙個檔案後, 呼叫 f.close() 來關閉檔案並釋放系統的資源,如果嘗試再呼叫該檔案,則會丟擲異常。

python 提供了乙個叫作 pickle 的標準模組,通過它你可以將任何純 python 物件儲存到一

個檔案中,並在稍後將其取回。這叫作持久地(persistently) 儲存物件。

看乙個例項

import

pickle

shoplistfile

='shoplist.data'

shoplist=[

,'mango'

,'carrot']

f=open

(shoplistfile

,'wb')

pickle.dump(shoplist,f)

f.close()

delshoplist f

=open

(shoplistfile

,'rb')

storelist

=pickle.load(f)

print

(storelist)

f.close()

process finished with exit code 0

我們可以從檔案中讀出來還是list的資料型別,恢復到儲存檔案前

pickle.dump(obj,file,[,protocol])

寫入函式

pickle

.

load

(

file

)

讀取函式,從file中讀取乙個字串,重構為python原來的物件

Python檔案訪問模式

一 檔案 1.檔案訪問模式 1 r,唯讀。2 w,只寫。若檔案存在,則清空檔案內容再寫 如檔案不存在,則建立檔案。3 a,追加。若檔案存在,則在檔案末尾追加文字,並且只能在文末追加 如檔案不存在,則建立檔案。4 r 讀寫。5 w 讀寫。w 和r 不同的是,它會清空檔案。6 a 讀寫。a 和r 不同的...

python檔案開啟的幾種訪問模式

訪問模式 說明 r 以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。w 開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。a 開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存...

Python獲取路徑與訪問檔案

一 獲取路徑和所在目錄 目錄結構 es rest test direction.py data abc.txt a.txt test direction.py coding utf 8 import os print 獲取當前檔案的絕對路徑 print os.path.abspath file 輸出...