open()方法
Python open()方法永于打開一個文件,并返回文件對象,并對文件進行處理過程中都需要用到這個方法,如果該文件無法被打開,則拋出OSError
注意:使用open()方法一定要保證關閉文件對象,即調用close()方法。
open()函數常用形式就是接受兩個參數:文件名和模式。
open(file,mode=’r’)
完整語法格式為:
open(file,mode=’r’,buffering=-1,ecoding=None,errors=None,newline=None,closed=True,opener=None)
參數說明:
file:??????????????? 必需,文件路徑(或者相對路徑)
mode:?????????? 可選,文件打開模式
buffering:????? 設置緩沖
encoding:????? 一般使用utf8
errors:?????????? 報錯級別
newline:??????? 區分換行符
closed:?????????? 傳入file參數類型
opener:
?
mode參數有:
模式 | 描述 |
t | 文本模式 |
x | 寫模式,新建一個文件,如果該文件已存在則報錯 |
b | 二進制模式 |
+ | 打開一個文件進行更新 |
U | 通用換行模式(Python3不支持) |
r | 以只讀的方法打開文件,文件的指針將會放在文件的開頭,這是默認模式 |
rb | 以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭,這是默認模式,一般用于非文本文件如圖片等 |
r+ | 打開一個文件用于讀寫,文件指針將位于 文件的開頭 |
rb+ | 以二進制格式打開一個文件用于讀寫。文件指針將放在文件的開頭。一般用于非文本文件如圖片 |
w | 打開一個文件只用于寫入。如果該文件已存在則打開文件,并從頭開始編輯,即原有的內容會被刪除,即原有內容會被刪除,如果該文件不存在則創建 |
wb | 以為二進制格式打開一個文件只用于寫入。如果該文件已存在則打開文件,并從頭開始編輯,即原有的內容會被刪除,即原有內容會被刪除,如果該文件不存在則創建 |
w+ | 打開一個文件只用于寫入。如果該文件已存在則打開文件,并從頭開始編輯,即原有的內容會被刪除,即原有內容會被刪除,如果該文件不存在則創建,一般用于非文本文件如圖片。 |
wb+ | 以二進制打開一個文件只用于寫入。如果該文件已存在則打開文件,并從頭開始編輯,即原有的內容會被刪除,即原有內容會被刪除,如果該文件不存在則創建,一般用于非文本文件如圖片。 |
a | 打開一個文件用于追加,如果該文件已存在,文件指針將放在文件尾部。也就是說新的內容將被寫入到已有內容之后,如果該文件不存在,創建新的文件進行寫入。 |
ab | 以二進制格式打開一個文件用于追加,如果該文件已存在,文件指針將放在文件尾部。也就是說新的內容將被寫入到已有內容之后,如果該文件不存在,創建新的文件進行寫入。 |
a+ | 打開一個文件用于讀寫,如果該文件已存在,文件指針將放在文件尾部。也就是說新的內容將被寫入到已有內容之后,如果該文件不存在,創建新的文件進行寫入。 |
ab+ | 以二進制格式打開一個文件用于追加,如果該文件已存在,文件指針將放在文件尾部。也就是說新的內容將被寫入到已有內容之后,如果該文件不存在,創建新的文件進行寫入。 |
默認為文本格式,如果要以二進制模式打開,加上b
?
file對象
file對象使用open函數來創建,下標列出了file對象常用的函數:
方法 | 描述 |
file.close() | 關閉文件 |
file.flush() | 刷新文件內部緩存,直接把內部緩沖的數據立即寫入到文件中,而不是被動等待輸出緩沖區寫入 |
file.fileno() | 返回一個整型的文件描述符,可以用在如os模塊的read()方法等一些底層操作上 |
file.isatty() | 如果文件連接到一個終端設備返回true,否則返回false |
file.next() | 返回文件下一行(python3不支持) |
file.read() | 從文件讀取指定的字節數,如果未給定或為負則讀取所有 |
file.readline() | 讀取整行,包括‘\n’ |
file.readlines() | 讀取所有行并返回列表,若給定sizeint>0,返回總和大約為sizeint字節的行,實際讀取值可能要比sizeint較大,因為需要填充緩沖區 |
file.seek() | 設置文件當前位置 |
file.tell() | 返回文件當前位置 |
file.truncate() | 從文件的首行首字符開始截斷,截斷文件為size個字符,無size表示從當前位置截斷;截斷之后后面的所有字符被刪除,其中windows系統下換行代表兩個字符大小。 |
file.write() | 將字符串寫入到文件,返回的是寫入字符長度 |
file.writelines() | 向文件寫入一個學列字符串列表,如果需要換行則需要自己加入每行的換行符。 |
? | ? |