必須先用python內建的open()函式開啟乙個檔案,建立乙個file物件,相關的方法才可以呼叫它進行讀寫。
語法:
file object = open(file, mode='r', buffering=none, encoding=none, errors=none, newline=none, closefd=true)各個引數的細節如下:
不同模式開啟檔案的完全列表:
模式描述
r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。
rbr+
開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。
rb+w
開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
wbw+
開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。
wb+a
開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
ab以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
a+開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。
ab+以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。
下圖總結了這幾種模式:
模式rr+ww+a
a+讀√√
√√寫√
√√√√
建立√√√
√覆蓋√√
指標在開始√√
√√指標在結尾√√
乙個檔案被開啟後,你有乙個file物件,你可以得到有關該檔案的各種資訊。
屬性描述
file.closed
返回true如果檔案已被關閉,否則返回false。
file.mode
返回被開啟檔案的訪問模式。
file.name
返回檔案的名稱。
file.encoding
返回開啟檔案時的編碼
如下例項:
f = open("test.txt", "w")輸出:print("檔名: ", f.name)
print("是否已關閉 : ", f.closed)
print("訪問模式 : ", f.mode)
print("檔案編碼: ", f.encoding) # 開啟檔案時候不指定預設與作業系統有關
檔名: test.txtfile 物件的 close()方法重新整理緩衝區裡任何還沒寫入的資訊,並關閉該檔案,這之後便不能再進行寫入。是否已關閉 : false
訪問模式 : w
檔案編碼: cp936
當乙個檔案物件的引用被重新指定給另乙個檔案時,python 會關閉之前的檔案。用 close()方法關閉檔案是乙個很好的習慣。
語法:
file.close()例子:
# 開啟乙個檔案輸出:f = open("test.txt", "w")
print("檔名: ", f.name)
print("是否已關閉 : ", f.closed)
print("訪問模式 : ", f.mode)
print("檔案編碼: ", f.encoding) # 開啟檔案時候不指定預設與作業系統有關
f.close() # 關閉檔案
print("是否已關閉 : ", f.closed)
檔名: test.txt讀寫檔案:是否已關閉 : false
訪問模式 : w
檔案編碼: cp936
是否已關閉 : true
write()方法可將任何字串寫入乙個開啟的檔案。需要重點注意的是,python字串可以是二進位制資料,而不是僅僅是文字。
write()方法不會在字串的結尾新增換行符('\n'):
write方法寫入檔案後返回寫入檔案的位元組數
語法:
file.write(string)在這裡,被傳遞的引數是要寫入到已開啟檔案的內容。
例子:
# 開啟乙個檔案此是會建立乙個名為test.txt的檔案開啟test.txt即可看到寫入的內容f = open("test.txt", "w")
size = f.write("hello world\n") # 把字串寫入到檔案
# 關閉開啟的檔案
print(size) # 此處輸出 12
f.close()
read()方法從乙個開啟的檔案中讀取乙個字串。需要重點注意的是,python字串可以是二進位制資料,而不是僅僅是文字。
read()方法讀的是字元 file的其他所有方法都是讀的位元組
語法:
file.read([count])在這裡,被傳遞的引數是要從已開啟檔案中讀取的位元組計數。該方法從檔案的開頭開始讀入,如果沒有傳入count,它會嘗試盡可能多地讀取更多的內容,很可能是直到檔案的末尾。
例子:這裡我們用到以上建立的 test.txt 檔案。
# 開啟乙個檔案輸出:f = open("test.txt", "r+")
str = f.read(5)
print(str)
str = f.read(5)
print(str)
# 關閉開啟的檔案
f.close()
hello將寫入的結果立即寫入到檔案。worl
語法:
file.flush()檔案的擷取,屬於寫方式。但不能使用w+模式(w+模式會把檔案內容清空)
語法:
file.truncate(count)count為擷取的檔案位元組數
例如:
f = open("test.txt", "r+")此時開啟test.txt會看到:f.truncate(3) # 擷取檔案前三個字元
f.close()
heltell()方法告訴你檔案內的當前位置, 換句話說,下一次的讀寫會發生在檔案開頭這麼多位元組之後。
seek(offset [,from])方法改變當前檔案的位置。offset變數表示要移動的位元組數。from變數指定開始移動位元組的參考位置。
如果from被設為0,這意味著將檔案的開頭作為移動位元組的參考位置。如果設為1,則使用當前的位置作為參考位置。如果它被設為2,那麼該檔案的末尾將作為參考位置。
seek 與 tell 都是按位元組讀。
例子:就用我們上面建立的檔案test.txt。
# 開啟乙個檔案輸出:f = open("test.txt", "r+")
str = f.read(5)
print(str)
# 查詢當前位置
position = f.tell()
print("當前檔案位置 : ", position)
# 把指標再次重新定位到檔案開頭
position = f.seek(0, 0)
str = f.read(10)
print(str)
# 關閉開啟的檔案
f.close()
hello當前檔案位置 : 5hello worl
python 3讀取檔案 Python3 檔案讀寫
python open 方法用於開啟乙個檔案,並返回檔案物件,在對檔案進行處理過程都需要使用到這個函式 1.讀取檔案 with open test json dumps.txt mode r encoding utf 8 as f seek 移動游標至指定位置 f.seek 0 read 讀取整個檔...
python 3 檔案管理
import os,tempfile,glob,shutil 建立目錄 os.mkdir r home rain test filedir 建立目錄以及所有path中包含的上級目錄 os.makedirs r home rain test test filedir 切換當前工作目錄 os.chdir...
python3 檔案處理
python open 方法用於開啟乙個檔案,並返回檔案物件,在對檔案進行處理過程都需要使用到這個函式,如果該檔案無法被開啟,會丟擲 oserror。注意 使用 open 方法一定要保證關閉檔案物件,即呼叫 close 方法。open 函式常用形式是接收兩個引數 檔名 file 和模式 mode o...