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