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