python中如何對檔案進行讀寫操作

2021-10-05 22:10:30 字數 2785 閱讀 1149

在python中想要操作檔案需要建立或開啟指定的檔案並建立檔案物件,可以通過內建的open函式來實現。

語法格式通常如下:

file

=open

(filename,

[mode]

,[buffering]

)

file:被建立的檔案物件

filename:要建立或開啟檔案的檔名稱,需要用單引號後雙引號括起來。如果要開啟的檔案和當前檔案在同乙個目錄下,那麼直接寫檔名即可,否則需要指定完整的路徑。

mode:可選引數,用於指定檔案的開啟模式,預設為唯讀 r

buffering:可選引數,用於指定讀寫檔案的緩衝模式,值為0表示不快取;值為1表示快取;值大於1則表示緩衝區的大小。預設為快取模式。

注意:當要開啟的檔案不存在時,指定mode引數的值為w、w+、a、a+,就可以建立新檔案了

file

=open

('picture.gif'

,'rb'

)print

(file

)

執行結果如下:

<_io.bufferedreader name="

'picture.gif'

>

在使用open()函式開啟檔案時,預設採用gbk編碼,當被開啟的檔案不是gbk編碼是,將丟擲如下異常:

要解決該問題有兩種方法:

1.直接修改檔案的編碼

2.在開啟檔案時,直接指定使用的編碼方式

推薦使用第二種方法,即在呼叫open函式時,通過新增encoding='utf-8』引數即可實現將編碼指定為utf-8,如果所要開啟檔案為其他編碼格式,可將引號中的內容替換成其他指定的編碼即可。

例如:

file

=open

('filename.txt'

,'r'

,encoding=

'utf-8'

)

開啟檔案後需要及時關閉,以免造成不必要的破壞,關閉檔案可以使用檔案物件的colse()方法。

語法格式如下:

file

.close(

)

file.closed語句是判斷檔案是否處於關閉狀態,返回布林型別

with語句可以保證執行完畢後自動關閉已經開啟的檔案。

語法格式如下:

with expression as target:

with

-body

expression:用於指定乙個表示式,這裡可以是開啟檔案的open()函式

target:用於指定乙個變數,並且將expression的結果儲存到該變數中

with-body:用於指定with語句體

python檔案物件提供了write()方法,可以向檔案中寫入內容。

語法格式如下:

file

.write(string)

呼叫write()方法向檔案中寫入內容的前提是在開啟檔案時,指定的開啟模式為w或a,否則將丟擲異常

注意在寫入檔案後一定要呼叫close()方法關閉檔案,否則寫入的內容不會儲存到檔案中,如果不關閉檔案,也可以呼叫檔案物件提供的flush()方法,把緩衝區的內容寫入檔案

讀取指定字元

檔案物件提供了read()方法讀取指定個數的字元

語法格式如下:

file

.read(

[size]

)

size:可選引數,如果省略則一次性讀取所有的內容

read([size])方法讀取檔案時,是從檔案開頭讀取的,若想要讀取部分內容,可以先使用seek()方法將檔案的指標位置移動到新的位置,然後再用read([size])方法讀取。

seek()方法的語法格式如下:

file

.seek(offset,

[whence]

)

offset:用於指定移動的字元個數,其具體位置與whence引數有關

whence:用於指定從什麼位置開始計算,0表示從檔案頭開始計算,1表示從當前位置開始計算,2表示從檔案尾開始計算,預設值為0.

注意:對於whence引數,如果在開啟檔案時沒有用b模式(即rb),那麼只允許從檔案頭開始計算相對位置

讀取一行

在使用read()方法讀取檔案時,如果檔案很大,一次讀取全部內容到記憶體,容易造成記憶體不足,所以通常採用逐行讀取,檔案物件提供了readline()方法用於讀取每一行資料。

語法格式如下:

file

.readline(

)

讀取全部行

讀取全部行的作用同呼叫read()方法時不指定size類似,只不過讀取全部行時,返回的是乙個字串列表。

語法格式如下:

file

.readlines(

)

python中對檔案進行讀和寫

開啟乙個檔案,並返回檔案物件,在對檔案進行處理過程都需要使用到這個函式,如果該檔案無法被開啟,出現oserror報錯。兩個引數 檔名 file 和模式 mode 例如 f open f 自動化測試工具 pycharm的專案 周杰倫.txt w 1.使用open 方法一定要保證關閉檔案物件,即呼叫cl...

python 對檔案進行切分行

針對配置檔案進行切分,重組,每隔30行為一段,進行重新生成功能。usr local python bin python coding utf 8 import sysimport reimport osf open config.conf r 判斷檔案條數 deffile num filename ...

使用python對檔案中的數值進行累加

問題描述 乙個檔案由若干條記錄組成,記錄的格式為 num1 num2 有時候,需要統計檔案中num1對應的num2的總值。處理問題的思路 用傳說中的python來處理,很方便。幾行 就可以了。處理思路 1 首先定義乙個字典,用於儲存最終的結果,這是因為字典中的key是唯一的特性。2 開啟檔案,按行讀...