從品牌網(wǎng)站建設(shè)到網(wǎng)絡(luò)營(yíng)銷策劃,從策略到執(zhí)行的一站式服務(wù)
來(lái)源:公司資訊 | 2021.08.19
開放式功能
Python對(duì)于文件操作更方便。沒(méi)有像Java那么多的IO操作類。首先歡迎使用open函數(shù),主要用于創(chuàng)建或打開文件。語(yǔ)法格式為:
文件=打開(文件名,模式=“r”,緩沖=無(wú),編碼=無(wú),錯(cuò)誤=無(wú),換行=無(wú),closefd=True)
1
file:表示要?jiǎng)?chuàng)建的文件對(duì)象。
file_name:要?jiǎng)?chuàng)建或打開的文件的文件名。名稱應(yīng)括在引號(hào)中。需要注意的是,如果要打開的文件和當(dāng)前執(zhí)行的代碼文件在同一目錄下,直接寫文件名即可。否則,此參數(shù)需要指定文件打開的完整路徑。
mode:可選參數(shù),用于指定文件的打開方式,可選的打開方式如下表所示。如果不寫入,默認(rèn)情況下文件以只讀 (r) 模式打開。
buffering:可選參數(shù),用于指定讀寫文件時(shí)是否使用buffer。如果buffering參數(shù)的值為0(或False),表示打開指定文件時(shí)不使用緩沖區(qū);如果緩沖參數(shù)的值為大于1的整數(shù),則該整數(shù)用于緩沖區(qū)的大小(以字節(jié)為單位); if buffering 參數(shù)的值為負(fù)數(shù),表示使用默認(rèn)的緩沖區(qū)大小。默認(rèn)情況下,open 函數(shù)打開緩沖區(qū)。
encoding:手動(dòng)設(shè)置打開文件時(shí)使用的編碼格式。不同的平臺(tái)有不同的編碼參數(shù)值。以Windows為例,默認(rèn)GBK編碼。
表 1 open 函數(shù)支持的文件打開方式
模式含義的注釋
r 以只讀方式打開文件,讀取文件內(nèi)容的指針會(huì)放在文件的開頭。要操作的文件必須存在
rb 為二進(jìn)制格式,使用只讀方式打開文件,讀取文件內(nèi)容的指針位于文件的開頭,一般用于非文本文件,如圖像文件、音頻文件操作、文件必須存在
r+ 打開文件后,可以從頭開始讀取文件內(nèi)容,也可以從頭開始往文件中寫入新內(nèi)容,寫入的新內(nèi)容會(huì)覆蓋文件的中等長(zhǎng)度原始內(nèi)容操作文件必須存在
rb+ 以讀寫方式打開二進(jìn)制格式的文件。讀寫文件的指針會(huì)放在文件的開頭。通常,非文本文件(如音頻文件)的文件必須存在 w 以只寫模式打開文件。如果文件存在,則打卡時(shí)會(huì)清除文件中原有的內(nèi)容。如果文件存在,則清除其原有內(nèi)容(覆蓋文件);否則,將創(chuàng)建一個(gè)新文件。
wb 以二進(jìn)制格式打開文件,只寫模式,一般用于非文本文件(如音頻文件)。如果文件存在,則其原始內(nèi)容將被清除(覆蓋文件);否則,將創(chuàng)建一個(gè)新文件。
w+ 打開文件后,原來(lái)的內(nèi)容會(huì)被清除,文件有讀寫權(quán)限。如果文件存在,則其原始內(nèi)容將被清除(覆蓋文件);否則,將創(chuàng)建一個(gè)新文件。
wb+ 以二進(jìn)制格式打開文件,讀寫方式,一般用于非文本文件。
a 以追加模式打開一個(gè)文件,該文件只有該文件的寫權(quán)限。如果文件已經(jīng)存在,則將文件指針?lè)旁谖募┪玻葱聦懭氲膬?nèi)容將位于現(xiàn)有內(nèi)容之后);否則,將創(chuàng)建一個(gè)新文件
ab 以二進(jìn)制格式打開文件,并使用追加模式只對(duì)文件進(jìn)行寫權(quán)限。如果文件已經(jīng)存在,則文件指針位于文件末尾(新寫入的文件將位于現(xiàn)有內(nèi)容之后);否則,創(chuàng)建一個(gè)新文件
a+ 以讀寫模式打開文件。如果文件存在,將文件指針?lè)旁谖募┪玻ㄐ聦懭氲奈募⑽挥诂F(xiàn)有內(nèi)容之后);相反,創(chuàng)建一個(gè)新文件
ab+ 以二進(jìn)制方式打開文件,使用追加方式對(duì)文件有讀寫權(quán)限。如果文件存在,則文件指針位于文件末尾(新寫入的文件將位于現(xiàn)有內(nèi)容之后);相反,創(chuàng)建一個(gè)新文件。
從上表中,我們可以得出以下結(jié)論:
帶b的模式是以二進(jìn)制格式打開文件,例如模式rb;wb;ab中帶+的模式
是以讀寫模式打開文件。說(shuō)白了就是可以讀寫文件,比如模式 r+;w+;a+;rb+;wb+;ab+
沒(méi)有b,或者+,比如r模式是只讀的,w模式是只寫,a模式是只追加文件。
文件讀取
讀取文件的三種方式:
file.read(size) 方法,逐字節(jié)或字符讀取獲取文件的內(nèi)容。 file 表示打開的文件對(duì)象,size 是一個(gè)可選參數(shù),用于指定一次可以讀取的最大字符(字節(jié))數(shù)。如果省略,則默認(rèn)一次性讀取所有內(nèi)容。
file.readline(size) 方法:逐行讀取文件內(nèi)容。 file 表示打開的文件對(duì)象,size 是可選參數(shù),用于指定讀取每行時(shí)一次讀取的最大字符數(shù)(字節(jié))。您可以循環(huán)讀取文件的所有內(nèi)容。
file .readlines() 方法:一次讀取文件中的多行,讀取結(jié)果以列表的形式返回。