更新時(shí)間:2022-10-06 來源:黑馬程序員 瀏覽量:
我們試想一下,如果想用Word編寫一份個(gè)人簡歷,則可以分為以下幾步:
(1)打開Word軟件,新建一個(gè)文件。
(2)編寫個(gè)人簡歷信息。
(3)保存文件。
(4)關(guān)閉Word軟件。
同樣,在Python中操作文件的整體過程與使用Word編寫一份簡歷的過程很相似,一般可以分為以下幾步:
(1)打開文件,或者新建立一個(gè)文件。
(2)讀/寫數(shù)據(jù)。
(3)關(guān)閉文件。
接下來,本節(jié)將針對文件的打開和關(guān)閉操作分別進(jìn)行詳細(xì)地講解。
一、文件的打開
在Python中,open函數(shù)用來打開文件,語法格式如下:
open(文件名[, 訪問模式])
上述格式中,“文件名”必須要填寫,“訪問模式”是可選的(后面會(huì)詳細(xì)介紹訪問模式)。
例如,打開一個(gè)名稱為“test.txt”的文件,示例代碼如下:
file = open('test.txt')
需要注意的是,使用open函數(shù)打開文件時(shí),如果沒有注明訪問模式,則必須保證文件是存在的,否則會(huì)報(bào)如下所示的異常信息。
Traceback (most recent call last): File "<input>", lin1, in<module> FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
二、文件模式
如果使用open函數(shù)打開文件時(shí),只傳入了文件名參數(shù),那么我們只能讀取文件。此時(shí),要想在打開的文件中寫入數(shù)據(jù),就必須指明文件的訪問模式。Python中文件的訪問模式有很多種,接下來,筆者來做一些詳細(xì)的介紹。
1.r:默認(rèn)模式。以只讀方式打開文件,文件的指針將會(huì)放在文件的開頭。
2.w:打開一個(gè)文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
3.a:打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說,新的內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。
4.rb:以二進(jìn)制格式打開一個(gè)文件用于只讀。文件指針將會(huì)放在文件的開頭。
5.wb:以二進(jìn)制格式打開一個(gè)文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
6.ab:以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已經(jīng)存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說,新的內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。
7.r+:打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開頭。
8.w+:打開一個(gè)文件用于讀寫。如果該文件已經(jīng)存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
9.a+:打開一個(gè)文件用于讀寫。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。文件打開時(shí)會(huì)是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫。
10.rb+:以二進(jìn)制格式打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件開頭。
11.wb+:以二進(jìn)制格式打開一個(gè)文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
12.ab+:以二進(jìn)制格式打開一個(gè)文件用于追加,如果該文件已經(jīng)存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。
三、文件的關(guān)閉
凡是打開的文件,切記要使用close方法關(guān)閉。即使文件會(huì)在程序退出后自動(dòng)關(guān)閉,但是考慮到數(shù)據(jù)的安全性,在每次使用完文件后,都要使用close方法關(guān)閉文件,否則一旦程序崩潰,很可能導(dǎo)致文件中的數(shù)據(jù)沒有保存。close方法的使用非常簡單,具體示例如下:
# 新建一個(gè)文件,文件名為itheima.txt file = open('itheima.txt', 'w') # 關(guān)閉這個(gè)文件 file.close()