Python 檔案處理指南:開啟、讀取、寫入、追加、建立和刪除檔案

2023-11-07 06:01:34

檔案處理是任何Web應用程式的重要部分。Python有多個用於建立、讀取、更新和刪除檔案的函數。

檔案處理

在Python中處理檔案的關鍵函數是open()函數。open()函數接受兩個引數:檔名和模式。

有四種不同的方法(模式)可以開啟檔案:

  • "r" - 讀取 - 預設值。開啟一個檔案以進行讀取,如果檔案不存在則報錯。
  • "a" - 追加 - 開啟一個檔案以進行追加,如果檔案不存在則建立檔案。
  • "w" - 寫入 - 開啟一個檔案以進行寫入,如果檔案不存在則建立檔案。
  • "x" - 建立 - 建立指定的檔案,如果檔案存在則返回錯誤。

此外,您可以指定檔案是二進位制模式還是文字模式:

  • "t" - 文字 - 預設值。文字模式。
  • "b" - 二進位制 - 二進位制模式(例如,影象)。

語法

要開啟一個檔案進行讀取,只需指定檔案的名稱:

f = open("demofile.txt")

上述程式碼與以下程式碼等效:

f = open("demofile.txt", "rt")

因為"r"表示讀取,"t"表示文字,它們是預設值,您不需要指定它們。

開啟伺服器上的檔案

假設我們有以下檔案,位於與Python相同的資料夾中:

demofile.txt
Hello! Welcome to demofile.txt
This file is for testing purposes.
Good Luck!

要開啟該檔案,使用內建的open()函數。

open()函數返回一個檔案物件,該物件具有用於讀取檔案內容的read()方法:

f = open("demofile.txt", "r")
print(f.read())

如果檔案位於不同的位置,您將不得不指定檔案路徑,如下所示:

f = open("D:\\myfiles\\welcome.txt", "r")
print(f.read())

唯讀取檔案的一部分

預設情況下,read()方法返回整個文字,但您也可以指定要返回多少個字元:

f = open("demofile.txt", "r")
print(f.read(5))

讀取行

您可以使用readline()方法返回一行:

f = open("demofile.txt", "r")
print(f.readline())

通過呼叫readline()兩次,您可以讀取前兩行:

f = open("demofile.txt", "r")
print(f.readline())
print(f.readline())

通過迴圈遍歷檔案的各行,您可以一行一行地讀取整個檔案:

f = open("demofile.txt", "r")
for x in f:
  print(x)

關閉檔案

最佳實踐是在使用完檔案後始終關閉它。

f = open("demofile.txt", "r")
print(f.readline())
f.close()

寫入現有檔案

要寫入現有檔案,您必須向open()函數新增一個引數:

  • "a" - 追加 - 將追加到檔案的末尾。
  • "w" - 寫入 - 將覆蓋任何現有內容。
f = open("demofile2.txt", "a")
f.write("Now the file has more content!")
f.close()

要檢查檔案是否位於不同的位置,您將不得不指定檔案路徑,如下所示:

f = open("demofile3.txt", "w")
f.write("Woops! I have deleted the content!")
f.close()

注意:使用"w"方法將覆蓋整個檔案。

建立新檔案

要在Python中建立新檔案,請使用open()方法,使用以下引數之一:

  • "x" - 建立 - 如果檔案存在則返回錯誤。
  • "a" - 追加 - 如果指定的檔案不存在,將建立檔案。
  • "w" - 寫入 - 如果指定的檔案不存在,將建立檔案。
f = open("myfile.txt", "x")

結果:建立了一個新的空檔案!

f = open("myfile.txt", "w")

刪除檔案

要刪除檔案,您必須匯入OS模組,並執行其os.remove()函數:

import os
os.remove("demofile.txt")

檢查檔案是否存在:

為了避免出現錯誤,您可能希望在嘗試刪除檔案之前檢查檔案是否存在:

import os
if os.path.exists("demofile.txt"):
  os.remove("demofile.txt")
else:
  print("The file does not exist")

刪除資料夾

要刪除整個資料夾,請使用os.rmdir()方法:

import os
os.rmdir("myfolder")

最後

為了方便其他裝置和平臺的小夥伴觀看往期文章:公眾號搜尋Let us Coding,或者掃描下方二維條碼,關注公眾號,即可獲取最新文章。

看完如果覺得有幫助,歡迎點贊、收藏關注