在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 開啟檔案,按行讀...