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