Python3 檔案操作詳解

pythontab發表於2017-03-24

檔案操作的步驟:

開啟檔案 -> 操作檔案 -> 關閉檔案

切記:最後要關閉檔案(否則可能會有意想不到的結果)

開啟檔案

檔案控制程式碼 = open('檔案路徑', '模式')

指定檔案編碼


檔案控制程式碼= open('檔案路徑','模式',encoding='utf-8') 

為了防止忘記關閉檔案,可以使用上下文管理器來開啟檔案


with open('檔案路徑','模式') as 檔案控制程式碼:

開啟檔案的模式有:


r,只讀模式(預設)。

w,只寫模式。【不可讀;不存在則建立;存在則刪除內容;】

a,追加模式。【可讀;   不存在則建立;存在則只追加內容;】

r+,可讀寫檔案。【可讀;可寫;可追加】

w+,寫讀

"U"表示在讀取時,可以將 \r \n \r\n自動轉換成 \n (與 r 或 r+ 模式同使用)


rU

r+U

"b"表示處理二進位制檔案(如:FTP傳送上傳ISO映象檔案,linux可忽略,windows處理二進位制檔案時需標註)


rb

wb

ab


關閉檔案

檔案控制程式碼.close()

操作檔案:

detach

#佔位

fileno(返回檔案描述符,用於底層作業系統的 I/O 操作)

fid = 檔案控制程式碼.fileno()

print(fid)

flush(重新整理緩衝區,將緩衝區中的資料立刻寫入檔案)


檔案控制程式碼.flush()

isatty(判斷檔案是否連線到一個終端裝置,返回布林值)


檔案控制程式碼.isatty()

read(從檔案中讀取指定的字元數,預設讀取全部)


str = 檔案控制程式碼.read()      #讀取整個檔案

str1 = 檔案控制程式碼.read(10)   #讀取檔案前10個字元

readable(判斷檔案是否可讀,返回布林值)


檔案控制程式碼.readable()

readline(每次最多讀取一行資料,每行的最後包含換行符'\n')


print(檔案控制程式碼.readline())   #讀取第一行資料

print(檔案控制程式碼.readline(3))  #讀取第二行前3個字元

print(檔案控制程式碼.readline())   #讀取第二行剩餘字元

print(檔案控制程式碼.readline())   #讀取第三行

seek(移動檔案讀取的指標,如果檔案中包含中文,移動指標必須是3的倍數,不然會報錯,因為一箇中文字元等於3個位元組)


檔案控制程式碼.seek(6)

seekable(判斷檔案指標是否可用,返回布林值)


檔案控制程式碼.seekable()

tell(獲取指標位置)


檔案控制程式碼.tell()

truncate(截斷,把指標後面的內容刪除,並寫入檔案,要在可寫模式下操作)


f = open('text.txt','r+',encoding='utf-8')

f.seek(9)   #把指標移動到第9個位元組後面(即第3箇中文後面)

f.truncate()  #把第3箇中文後面的字元刪除,並寫入檔案

f.close()

writable(判斷檔案是否可寫,返回布林值)


檔案控制程式碼.writable()

write(把字串寫入檔案,並返回字元數)


檔案控制程式碼.write('字串')