當前位置:
首頁 > 最新 > Python文件處理

Python文件處理

數據的存儲可以使用資料庫,也可以使用文件。 資料庫保持了數據的完整性和關聯性,且使用數據更安全、可靠。使用文件存儲數據則非常簡單、易用,不必安裝資料庫管理系統等運行環境。 文件通常用於存儲應用軟體的參數或臨時性數據,是一個命名的比特集合,存儲在硬碟、U盤、快閃記憶體條等輔助存儲設備中。 文件分為兩類:文本文件和二進位文件。 Python提供了os、os.path、shutil等模塊處理文件。

一、文件的常見操作

文件的常見操作包括:

打開文件

讀寫文件

複製文件

刪除文件


文件的打開或創建可以使用函數open。該函數可以指定處理模式,設置打開的文件為只讀、只寫或可讀寫狀態。

格式: open(file, [mode[, buffering]])—>file object

說明:

參數file是被打開的文件名。若文件file不存在,open()將創建該文件,然後再打開該文件。

參數mode是指文件的打開模式。打開模式如表8-1。

參數buffering設置緩存模式。0表示無緩衝;1表示行緩衝;如果大於1則表示緩衝區的大小,,-1(或者任何負數)代表使用默認的緩衝區大小。以位元組為單位。

open()返回1個file對象,file對象可以對文件進行各種操作

文件的打開模式

關於file類:

file類用於文件管理,可以對文件進行創建、打開、讀寫、關閉等操作。 文件的處理一般分為三個步驟:

創建並打開文件,使用open()函數返回1個file對象。

調用file對象的read()、write()等方法處理文件。

調用close()關閉文件,釋放file對象佔用的資源。

file類的常用屬性和方法

例:文件的創建、寫入和關閉

例:在文件尾添加內容


文件的讀取有多種方法,可以使用readline()、readlines()或read()函數讀取文件。

(1)按行讀取方式readline()

readline()每次讀取文件中的一行,需要使用永真表達式循環讀取文件。但當文件指針移動到文件的末尾時,依然使用readline()讀取文件將出現錯誤。因此程序中需要添加1個判斷語句,判斷文件指針是否移動到文件的尾部,並且通過該語句中斷循環。

例:使用readline()讀文件

執行結果:

(2)多行讀取方式

函數readlines()可一次性讀取文件中多行數據。

使用readlines()讀取文件,需要通過循環訪問readlines()返回的內容。

例:使用readlines()讀文件

執行結果:

(3)一次性讀取方式

讀取文件最簡單的方法是使用read(),read()將從文件中一次性讀出所有的內容,並賦值給1個字元串變數。

例:使用read()返回指定位元組的內容

執行結果:


文件的寫入同樣有多種方法,可以使用write()、writelines()方法寫入文件。

使用write()方法將字元串寫入文件,而writelines()方法可將列表中存儲的字元串序列寫入文件。

例:使用writelines()寫文件

將字元串插入到文件開頭:

相比在文件末尾添加字元串,將字元串寫入文件開頭不那麼容易,因為操作系統沒有提供這樣的支持。

解決的方法是:將文件讀取到一個字元串中,將新文本插入到該字元串,再將這個字元串寫入原來的文件。

例:將字元串插入到文件開頭


刪除文件需要使用os模塊和os.path模塊。

os模塊提供了對系統環境、文件、目錄等操作系統級的介面函數。

下表列出了os模塊常用的文件處理函數。

表:os模塊常用的文件處理函數

表:os.path模塊常用函數

注意:os模塊的open()函數與內置的open()函數的用法不同。

例:文件的刪除


file類並沒有提供直接複製文件的方法,但可以使用read()、write()方法來實現複製文件的功能。

例:用read()、write()實現文件複製

複製文件的其他方法:

shutil模塊是另一個文件、目錄的管理介面,提供了一些用於複製文件、目錄的函數。

其中,copyfile()函數可以實現文件的複製,move()函數可以實現文件的剪切。 copyfile(src, dst)

其中,參數src表示源文件的路徑,dst表示目標文件的路徑,均為字元串類型。

Move(src, dst, *, follow_symlinks=True)

例:使用shutil模塊實現文件的複製和移動


os模塊的函數rename()可以對文件或目錄進行重命名。

在實際應用中,經常需要將某一類文件修改為另一種類型,即修改文件的後綴名。可以通過函數rename()和字元串查找函數來實現。

例:修改後綴名


文件內容的搜索和替換可以使用字元串查找和替換來實現。

例:從hello.txt文件中統計字元串』hello』出現的次數。


Python中,通常使用pickle模塊處理二進位文件。

可以使用pickle.dump將數據結構存儲到磁碟,之後再用pickle.load從磁碟獲取數據結構。

pickle不能用於讀寫特殊格式的二進位文件,如GIF文件。對這種格式的文件,必須逐位元組處理。

例:二進位文件存取

執行結果:

二、目錄的常見操作

Python的os模塊和os.path模塊還提供了一些針對目錄操作的函數。


os模塊提供的常用目錄處理函數如表所示。

表:os模塊常用目錄處理函數

例:目錄的創建和刪除


目錄的遍歷有兩種實現方法:遞歸函數、os.walk()。

例:用遞歸函數遍歷目錄d:Python34lib

例:使用os.walk()遍歷目錄


對目錄的常見操作還有: 返回當前目錄中的文件和文件夾; 返回當前目錄中的指定類型文件; 返回當前目錄中所有文件的大小總和等。

例:返回當前目錄中的文件和文件夾

例:返回當前目錄或指定目錄中的.py文件

例:返回當前目錄中所有文件的大小總和


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python 的精彩文章:

Python基礎了解
關於Python數據分析,這裡有一條高效的學習路徑

TAG:Python |