python檔案操作你想看的這裡都有

2021-10-11 02:56:50 字數 2935 閱讀 7672

檔案操作還不會嗎,面試的時候問到上下文管理還一臉懵逼?來不及了呀,趕快看,下次再有人問你的時候不用尷尬而不失禮貌的微笑了。

在python,使用open函式,可以開啟乙個已經存在的檔案,或者建立乙個新檔案。

# open(檔名,訪問模式)

file =

open

('test.txt'

,'w'

)

這裡是常用的讀寫模式,我簡單的整理了一下。

訪問模式說明r

以唯讀方式開啟檔案。檔案的指標將會放在檔案的開頭。這是預設模式。

w開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

a開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

rb以二進位制格式開啟乙個檔案用於唯讀。檔案指標將會放在檔案的開頭。這是預設模式。

wb以二進位制格式開啟乙個檔案只用於寫入。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

ab以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。也就是說,新的內容將會被寫入到已有內容之後。如果該檔案不存在,建立新檔案進行寫入。

r+開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

w+開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

a+開啟乙個檔案用於讀寫。如果該檔案已存在,檔案指標將會放在檔案的結尾。檔案開啟時會是追加模式。如果該檔案不存在,建立新檔案用於讀寫。

rb+以二進位制格式開啟乙個檔案用於讀寫。檔案指標將會放在檔案的開頭。

wb+以二進位制格式開啟乙個檔案用於讀寫。如果該檔案已存在則將其覆蓋。如果該檔案不存在,建立新檔案。

ab+以二進位制格式開啟乙個檔案用於追加。如果該檔案已存在,檔案指標將會放在檔案的結尾。如果該檔案不存在,建立新檔案用於讀寫。

# 如有檔案直接開啟,沒有檔案會新建乙個檔案

file =

open

('test.txt'

,'w'

)

這裡要注意一下,開啟檔案的模式會影響接下來的操作。

file.

write

("hello world"

)

# read(num) 

# num表示要從檔案中讀取的資料的長度(單位是位元組),如果沒有傳入num,那麼就表示讀取檔案中所有的資料

content = f.

read

()

檔案很大的時候切記要少量多次

file.

close

()

對於系統資源如檔案、資料庫連線、socket 而言,應用程式開啟這些資源並執行完業務邏輯之後,必須做的一件事就是要關閉(斷開)該資源。但是有時候發生異常後就會出現無法關閉,所以我們要做一些異常處理。

def test()

: f =

open

("output.txt"

,"w"

) try:

f.write

("python"

) except ioerror:

print

("oops error"

) finally:

f.close

()

這樣倒是可以滿足需求,不管發生什麼檔案一定會關閉,但是還有沒有更好的辦法呢?

def test()

: with open

("output.txt"

,"r"

) as f:

f.write

("python"

)

一種更加簡潔、優雅的方式就是用 with 關鍵字。open 方法的返回值賦值給變數 f,當離開 with **塊的時候,系統能夠自動呼叫 f.close() 方法。

任何實現了enter() 和exit() 方法的物件都可稱之為上下文管理器,上下文管理器物件可以使用 with 關鍵字。顯然,檔案(file)物件也實現了上下文管理器。

那麼檔案物件是如何實現這兩個方法的呢?我們可以模擬實現乙個自己的檔案類,讓該類實現enter() 和exit() 方法。

class file()

: def __init__

(self, filename, mode)

: self.filename = filename

self.mode = mode

def __enter__

(self)

:print

("entering"

) self.f =

open

(self.filename, self.mode)

return self.f

def __exit__

(self,

*args)

:print

("will exit"

) self.f.

close

()

enter() 方法返回資源物件,這裡就是你將要開啟的那個檔案物件,exit() 方法處理一些清除工作。

因為 file 類實現了上下文管理器,現在就可以使用 with 語句了。現在是不是感覺清楚多了。

剩下的要做的就簡單多了,我們可以把讀取任何檔案進行傳輸(,文字,資料夾,**…),另存或者通過網路請求傳送給指定使用者,是不是很強大呀!

這世界遠比你想象的好

一大早醒來,被王寶強離婚的訊息刷屏了,各大期刊,朋友圈,慢慢的負能量,很多人說發表感慨 現在的婚姻怎麼了 姑且不說誰的問題,與我們何干,每個人有每個人的生活方式,讓他們撕逼去吧。婚姻是愛情的墳墓嗎?如果你認為它是,那它終究會是。任何事,尤其與感情有牽扯的,在我看來都應該被視為一種信仰。生活,遠比你想...

Python的檔案操作

1.open使用open開啟檔案後一定要記得呼叫檔案物件的close 方法。比如可以用try finally語句來確保最後能關閉檔案。file object open thefile.txt try all the text file object.read finally file object....

Python的檔案操作

python中對檔案 資料夾 檔案操作函式 的操作需要涉及到os模組和shutil模組。一 1.得到當前工作目錄,即當前python指令碼工作的目錄路徑 os.getcwd 2.返回指定目錄下的所有檔案和目錄名 os.listdir 3.函式用來刪除乙個檔案 os.remove 4.刪除多個目錄 o...