python open() 方法用於開啟乙個檔案,並返回檔案物件,在對檔案進行處理過程都需要使用到這個函式,如果該檔案無法被開啟,會丟擲 oserror。
注意:使用 open() 方法一定要保證關閉檔案物件,即呼叫 close() 方法。
open() 函式常用形式是接收兩個引數:檔名(file)和模式(mode)。
open(file, mode='r')
完整的語法格式為:
open(file, mode='r', buffering=-1, encoding=none, errors=none, newline=none, closefd=true, opener=none)
引數說明:
mode 引數有:
模式描述
t文字模式 (預設)。
x寫模式,新建乙個檔案,如果該檔案已存在則會報錯。
b二進位制模式。
+開啟乙個檔案進行更新(可讀可寫)。
u通用換行模式(不推薦)。
r以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。
rbr+
開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。
rb+w
開啟乙個檔案只用於寫入。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。
wbw+
開啟乙個檔案用於讀寫。如果該檔案已存在則開啟檔案,並從開頭開始編輯,即原有內容會被刪除。如果該檔案不存在,建立新檔案。
wb+a
開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
ab以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。
a+開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。
ab+以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。
預設為文字模式,如果要以二進位制模式開啟,加上 b 。
file 物件使用 open 函式來建立,下表列出了 file 物件常用的函式:
序號方法及描述
1file.close()
關閉檔案。關閉後檔案不能再進行讀寫操作。
2file.flush()
重新整理檔案內部緩衝,直接把內部緩衝區的資料立刻寫入檔案, 而不是被動的等待輸出緩衝區寫入。
3file.fileno()
返回乙個整型的檔案描述符(file descriptor fd 整型), 可以用在如os模組的read方法等一些底層操作上。
4file.isatty()
如果檔案連線到乙個終端裝置返回 true,否則返回 false。
5file.next()
返回檔案下一行。
6file.read([size])
從檔案讀取指定的位元組數,如果未給定或為負則讀取所有。
7file.readline([size])
讀取整行,包括 "\n" 字元。
8file.readlines([sizeint])
讀取所有行並返回列表,若給定sizeint>0,返回總和大約為sizeint位元組的行, 實際讀取值可能比 sizeint 較大, 因為需要填充緩衝區。
9file.seek(offset[, whence])
設定檔案當前位置 f.seek(偏移量,0) 0檔案開頭 1當前位置 2檔案末尾
10file.tell()
返回檔案當前位置。
11file.truncate([size])
從檔案的首行首字元開始截斷,截斷檔案為 size 個字元,無 size 表示從當前位置截斷;截斷之後後面的所有字元被刪除,其中 widnows 系統下的換行代表2個字元大小。
12file.write(str)
將字串寫入檔案,返回的是寫入的字元長度。
13file.writelines(sequence)
向檔案寫入乙個序列字串列表,如果需要換行則要自己加入每行的換行符。
f1 = open('test_new.py', 'w')
f2 = open("test.py")
f1.write(f2.read())
f1.close()
f2.close()
這個程式現在有點問題,就是整個檔案如果太大的話那麼可能讀的太困難對記憶體壓力太大我們可以用redline()一行一行來
f1 = open('test_new.py', 'r+')
f2 = open("test.py")
# f1.write(f2.read())
while true:
content = f2.readline()
f1.writelines(content)
if len(content) == 0:
break
f1.close()
f2.close()
當讀完之後可以用f.seek()來控制檔案讀寫的位置
while true:
content = f2.readline()
f1.writelines(content)
f2.seek(0, 0)
if len(content) == 0:
break
比如這樣的話他就會不斷地重複讀取第一行 Python3 檔案處理
目錄檔案的兩種形式 檔案路徑 with open開啟檔案 可讀可寫模式 補充 控制游標 開啟檔案 f open r 檔案路徑 w encoding 字元編碼 讀取 修改檔案 f.write 寫入 儲存檔案 f.flush 快速儲存 關閉檔案 f.close 告訴作業系統關閉檔案 f open r c...
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...