- open() 方法
Python open() 方法用於打開一個文件,並返回文件對象,在對文件進行處理過程中都需要使用到這個函數,如果文件無法被打開,則會拋出 OSError。
open() 方法一般與 close() 搭配使用,跟Java一樣,讀取文件後,需要關閉文件,防止資源泄露,即,打開文件就需要關閉文件。
open() 函數常用形式是接收兩個參數:文件名(file)和模式(mode): open(file, mide = “r”)
open() 完整的語法:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
參數說明:
file:必須,文件路徑(相對、絕對)
mode: 可選,文件打開模式,默認文本模式(t)
buffering:設置緩衝
encoding:一般使用utf8
errors:報錯級別
newline:區分換行符
closefd:傳入的file參數類型
模式 |
描述 |
t |
文本模式,默認(windows平臺中的文本模式,與r的區別在於會自動識別windows平臺的換行符) |
x |
寫模式,新建一個文件,如果該文件已經存在則會報錯 |
b |
二進制模式 |
+ |
打開一個文件進行更新(可讀可寫) |
r |
以只讀方式打開文件,文件的指針會放在文件的開發,這是默認模式 |
rb |
以二進制格式打開一個文件用於只讀,文件的指針會放在文件的開頭,這是默認模式。一般用於非文本如圖片等 |
r+ |
打開一個文件用於讀寫。文件指針將會放在文件的開頭 |
rb+ |
以二進制格式打開一個文件用於讀寫,文件指針將會放在文件的開頭,一般用於非文本如圖片等 |
w |
打開一個文件用於只寫。如果該文件已存在則打開文件,並從開頭開始編輯,原有內容將被覆蓋,如果該文件不存在,則創建 |
wb |
以二進制格式打開一個文件用於只寫,如果該文件已存在則打開,並從頭開始編輯,原有內容將被覆蓋,如果該文件不存在,則創建,一般用於非文本文件如圖片等 |
w+ |
打開一個文件用於讀寫,如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。 |
wb+ |
以二進制格式打開一個文件用於讀寫。如果該文件已存在則打開文件,並從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用於非文本文件如圖片等。 |
a |
打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。 |
ab |
以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該文件不存在,創建新文件進行寫入。 |
a+ |
打開一個文件用於讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用於讀寫。 |
ab+ |
以二進制格式打開一個文件用於追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用於讀寫。 |
- file 對象常用函數
函數 |
描述 |
open() |
打開文件,返回文件對象 |
close() |
關閉文件,關閉後文件不能再進行讀寫操作 |
flush() |
刷新文件內容緩衝,直接把內部緩衝區的數據立刻寫入文件,而不是被動的等待輸出緩衝區寫入。 |
fileno() |
返回一個整型的文件描述符(file description FD整型),可以用在如OS模塊的read方法等一些底層操作上。 |
isatty() |
如果文件連接到一個終端設備返回True,否則返回False |
Read([size]) |
從文件中讀取指定的字節數,如果未給定或爲負責讀取所有 |
readline([size]) |
從文件中讀取整行,包括“\n”字符,如果指定了一個非負數的參數,則返回指定大小的字節數,包括 "\n" 字符。 |
readlines([sizeint]) |
讀取所有行並返回列表,如果指定了一個非負數的參數,返回總和大約爲sizeint字節的行, 實際讀取值可能比 sizeint 較大, 因爲需要填充緩衝區。 |
seek(offset[, whence]) |
方法用於移動文件讀取指針到指定位置。 offset -- 開始的偏移量,也就是代表需要移動偏移的字節數,如果是負數表示從倒數第幾位開始。 whence:可選,默認值爲 0。給 offset 定義一個參數,表示要從哪個位置開始偏移;0 代表從文件開頭開始算起,1 代表從當前位置開始算起,2 代表從文件末尾算起。 如果操作成功,則返回新的文件位置,如果操作失敗,則函數返回 -1。 |
tell() |
返回文件的當前位置,即文件指針當前位置。 |
truncate([size]) |
從文件的首行首字節開始截斷,截斷文件爲 size 個字節,無 size 表示從當前位置截斷;截斷之後後面的所有字節被刪除,其中 Widnows 系統下的換行代表2個字節大小。 。 |
write(str) |
向文件中寫入指定字符串,返回寫入的字符長度 |
writelines(sequence) |
向文件寫入一個序列字符串列表,如果需要換行則要自己加入每行的換行符。 |
關鍵詞 with 語句就可以保證諸如文件之類的對象在使用完之後一定會正確的執行他的清理方法,避免忘記關閉:
with open("myfile.txt") as f:
for line in f:
print(line, end="")