Python - 檔案處理



Python 中的檔案處理

Python 中的檔案處理涉及與計算機上的檔案進行互動,以讀取檔案中的資料或向其中寫入資料。Python 提供了幾個內建函式和方法用於建立、開啟、讀取、寫入和關閉檔案。本教程涵蓋了 Python 中檔案處理的基礎知識以及示例。

在 Python 中開啟檔案

要執行任何檔案操作,第一步是開啟檔案。Python 的內建 open() 函式用於以各種模式開啟檔案,例如讀取、寫入和追加。在 Python 中開啟檔案的語法如下:

file = open("filename", "mode")

其中,filename 是要開啟的檔名,mode 是開啟檔案的模式(例如,'r' 表示讀取,'w' 表示寫入,'a' 表示追加)。

檔案開啟模式

以下是檔案開啟模式:

序號 模式 & 描述
1

r

僅開啟檔案以進行讀取。檔案指標放置在檔案開頭。這是預設模式。

2

rb

以二進位制格式開啟檔案以進行讀取。檔案指標放置在檔案開頭。這是預設模式。

3

r+

開啟檔案以進行讀取和寫入。檔案指標放置在檔案開頭。

4

rb+

以二進位制格式開啟檔案以進行讀取和寫入。檔案指標放置在檔案開頭。

5

w

僅開啟檔案以進行寫入。如果檔案存在,則覆蓋檔案。如果檔案不存在,則建立一個新檔案以進行寫入。

6

b

以二進位制模式開啟檔案

7

t

以文字模式開啟檔案(預設)

8

+

開啟檔案以進行更新(讀取和寫入)

9

wb

以二進位制格式開啟一個檔案,僅用於寫入。如果檔案存在,則覆蓋該檔案。如果檔案不存在,則建立一個新檔案用於寫入。

10

w+

開啟一個檔案,既可以寫入也可以讀取。如果檔案存在,則覆蓋現有檔案。如果檔案不存在,則建立一個新的檔案用於讀寫。

11

wb+

以二進位制格式開啟一個檔案,既可以寫入也可以讀取。如果檔案存在,則覆蓋現有檔案。如果檔案不存在,則建立一個新的檔案用於讀寫。

12

a

開啟一個檔案用於追加。如果檔案存在,則檔案指標位於檔案末尾。也就是說,檔案處於追加模式。如果檔案不存在,則建立一個新檔案用於寫入。

13

ab

以二進位制格式開啟一個檔案用於追加。如果檔案存在,則檔案指標位於檔案末尾。也就是說,檔案處於追加模式。如果檔案不存在,則建立一個新檔案用於寫入。

14

a+

開啟一個檔案,既可以追加也可以讀取。如果檔案存在,則檔案指標位於檔案末尾。檔案以追加模式開啟。如果檔案不存在,則建立一個新的檔案用於讀寫。

15

ab+

以二進位制格式開啟一個檔案,既可以追加也可以讀取。如果檔案存在,則檔案指標位於檔案末尾。檔案以追加模式開啟。如果檔案不存在,則建立一個新的檔案用於讀寫。

16

x

以獨佔方式建立開啟,如果檔案已存在則失敗

一旦檔案被開啟並且您擁有一個檔案物件,您就可以獲取與該檔案相關的各種資訊。

示例 1

在以下示例中,我們以不同的模式開啟一個檔案:

# Opening a file in read mode
file = open("example.txt", "r")

# Opening a file in write mode
file = open("example.txt", "w")

# Opening a file in append mode
file = open("example.txt", "a")

# Opening a file in binary read mode
file = open("example.txt", "rb")

示例 2

在這裡,我們以二進位制寫入模式 ("wb") 開啟名為 "foo.txt" 的檔案,列印其名稱、是否已關閉以及其開啟模式,然後關閉檔案:

# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)
print ("Closed or not: ", fo.closed)
print ("Opening mode: ", fo.mode)
fo.close()

它將產生以下輸出

Name of the file: foo.txt
Closed or not: False
Opening mode: wb

在 Python 中讀取檔案

在 Python 中讀取檔案包括以允許讀取的模式開啟檔案,然後使用各種方法從檔案中提取資料。Python 提供了幾種方法來讀取檔案中的資料:

  • read() - 讀取整個檔案。

  • readline() - 一次讀取一行。

  • readlines - 將所有行讀取到列表中。

要讀取檔案,您需要以讀取模式開啟它。open() 函式的預設模式是讀取模式 ('r'),但顯式指定它是一個好習慣。

示例:使用 read() 方法

在以下示例中,我們使用 read() 方法將整個檔案讀取到單個字串中:

with open("example.txt", "r") as file:
   content = file.read()
   print(content)

以下是獲得的輸出:

Hello!!!
Welcome to TutorialsPoint!!!

示例:使用 readline() 方法

在這裡,我們使用 readline() 方法一次讀取一行,使其成為逐行讀取大型檔案的記憶體高效方法:

with open("example.txt", "r") as file:
   line = file.readline()
   while line:
      print(line, end='')
      line = file.readline()

以上程式碼的輸出如下所示:

Hello!!!
Welcome to TutorialsPoint!!!

示例:使用 readlines() 方法

現在,我們使用 readlines() 方法讀取整個檔案並將其拆分為一個列表,其中每個元素都是一行:

with open("example.txt", "r") as file:
   lines = file.readlines()
   for line in lines:
      print(line, end='')

我們得到如下輸出:

Hello!!!
Welcome to TutorialsPoint!!!

在 Python 中寫入檔案

在 Python 中寫入檔案包括以允許寫入的模式開啟檔案,然後使用各種方法向檔案新增內容。

要將資料寫入檔案,請使用 write() 或 writelines() 方法。當以寫入模式 ('w') 開啟檔案時,檔案中的現有內容將被擦除。

示例:使用 write() 方法

在此示例中,我們使用 write() 方法將傳遞給它的字串寫入檔案。如果檔案以 'w' 模式開啟,它將覆蓋任何現有內容。如果檔案以 'a' 模式開啟,它將字串追加到檔案末尾:

with open("foo.txt", "w") as file:
   file.write("Hello, World!")
   print ("Content added Successfully!!")

以上程式碼的輸出如下:

Content added Successfully!!

示例:使用 writelines() 方法

在這裡,我們使用 writelines() 方法獲取一個字串列表,並將每個字串寫入檔案。它可用於一次寫入多行:

lines = ["First line\n", "Second line\n", "Third line\n"]
with open("example.txt", "w") as file:
   file.writelines(lines)
   print ("Content added Successfully!!")

獲得的結果如下:

Content added Successfully!!

在 Python 中關閉檔案

我們可以使用 close() 方法在 Python 中關閉檔案。關閉檔案是檔案處理中的一個重要步驟,以確保檔案使用的所有資源都得到正確釋放。在操作完成後關閉檔案非常重要,以防止資料丟失並釋放系統資源。

示例

在此示例中,我們開啟檔案以進行寫入,將資料寫入檔案,然後使用 close() 方法關閉檔案:

file = open("example.txt", "w")
file.write("This is an example.")
file.close()
print ("File closed successfully!!")

產生的輸出如下所示:

File closed successfully!!

使用 "with" 語句自動關閉檔案

對於檔案操作,with 語句是 Python 中的最佳實踐,因為它確保在程式碼塊退出時自動關閉檔案,即使發生異常也是如此。

示例

在此示例中,檔案在 with 塊結束時自動關閉,因此無需顯式呼叫 close() 方法:

with open("example.txt", "w") as file:
   file.write("This is an example using the with statement.")
   print ("File closed successfully!!")

以下是以上程式碼的輸出:

File closed successfully!!

處理關閉檔案時的異常

執行檔案操作時,務必處理潛在的異常,以確保您的程式能夠優雅地管理錯誤。

在 Python 中,我們使用try-finally塊來處理關閉檔案時的異常。"finally" 塊確保無論 try 塊中是否發生錯誤,檔案都將被關閉:

try:
   file = open("example.txt", "w")
   file.write("This is an example with exception handling.")
finally:
   file.close()
   print ("File closed successfully!!")

執行以上程式碼後,我們得到以下輸出:

File closed successfully!!
廣告