使用 Python 開啟檔案時有哪些模式?


在 Python 程式設計領域,處理檔案需要深入理解各種檔案開啟模式。檔案開啟模式決定了可以對檔案執行的操作,例如讀取、寫入或兩者結合。Python 提供了多種模式,以滿足不同的使用場景和需求。無論您是想從檔案讀取資料,還是向檔案寫入資料,或者同時執行這兩種操作,選擇合適的開啟檔案模式對於無縫檔案處理至關重要。

在這篇全面的文章中,我們將踏上一段探索之旅,揭開使用不同模式在 Python 中開啟檔案的奧秘。透過細緻的分步說明和啟發性的程式碼示例,我們將指導您有效地利用這些模式。無論您的目標是使用讀取模式、寫入模式、二進位制模式還是追加模式,本指南都將為您提供執行檔案操作所需的知識。

讓我們開始這段激動人心的 Python 檔案處理探索之旅,深入瞭解各種檔案開啟模式!

讀取模式:'r'

讀取模式 ('r') 在 Python 中被視為開啟檔案的預設模式。當您以讀取模式開啟檔案時,您只能讀取檔案中的資料,而無法修改其內容。嘗試以讀取模式開啟不存在的檔案將觸發 "FileNotFoundError" 錯誤。

示例

在下面的程式碼片段中,我們介紹了函式 "read_file_content()",它以 "file_path" 作為輸入,並使用 'r' 模式讀取檔案內容。'with' 語句確保檔案在套件執行完成後高效地關閉。我們使用 'r' 模式和 "open()" 函式以讀取模式訪問由 "file_path" 指定的檔案。"file.read()" 方法盡職地讀取檔案的全部內容,並將內容儲存在 "content" 變數中。然後,內容會優雅地列印到控制檯。

def read_file_content(file_path):
   try:
      with open(file_path, 'r') as file:
         content = file.read()
         print(content)
   except FileNotFoundError:
      print(f"The file '{file_path}' does not exist.")

寫入模式:'w'

寫入模式 ('w') 為向檔案寫入資料打開了大門。當您選擇寫入模式時,如果檔案已存在,其內容將被截斷,這意味著所有現有資料都將被刪除。另一方面,如果檔案不存在,則會建立一個新檔案。使用寫入模式時請謹慎,因為不小心使用可能會導致資料丟失。

示例

在此示例中,我們定義了 "write_to_file()" 函式,它以 "file_path" 和 "content" 作為輸入,並使用 'w' 模式高效地將內容寫入檔案。'with' 語句確保檔案在套件執行完成後正確關閉。我們使用 'w' 模式和 "open()" 函式以寫入模式訪問由 "file_path" 指定的檔案。"file.write(content)" 方法巧妙地將 "content" 寫入檔案。成功完成後,控制檯會顯示一條成功訊息。

def write_to_file(file_path, content):
   try:
      with open(file_path, 'w') as file:
         file.write(content)
         print("Data written successfully!")
   except Exception as e:
      print(f"An error occurred: {e}")

二進位制模式:'b'

當處理二進位制資料(例如影像、音訊檔案或其他非文字檔案)時,二進位制模式 ('b') 成為首選。以二進位制模式開啟檔案使您能夠讀取或寫入二進位制資料。'b' 模式可以與讀取 ('r') 或寫入 ('w') 模式和諧地結合使用。

示例

在此示例中,我們建立了 "read_binary_file()" 函式,它接受 "file_path" 作為輸入,並使用 'rb' 模式高效地從檔案讀取二進位制資料。'with' 語句確保檔案在套件結束後正確關閉。我們利用 'rb' 模式和 "open()" 函式以二進位制讀取模式訪問由 "file_path" 指定的檔案。"file.read()" 方法熟練地從檔案讀取二進位制資料,並將資料儲存在 "binary_data" 變數中。然後,二進位制資料會優雅地列印到控制檯。

def read_binary_file(file_path):
   try:
      with open(file_path, 'rb') as file:
         binary_data = file.read()
         print(binary_data)
   except FileNotFoundError:
      print(f"The file '{file_path}' does not exist.")

追加模式:'a'

當需要將新資料追加到現有檔案而不截斷其內容時,追加模式 ('a') 應運而生。如果檔案不存在,則會建立一個新檔案。當您希望將資料新增到檔案而不覆蓋其現有內容時,追加模式非常有用。

示例

在此示例中,我們提供了 "append_to_file()" 函式,它接收 "file_path" 和 "content" 作為輸入,並使用 'a' 模式無縫地將內容追加到檔案。'with' 語句確保檔案在套件結束後高效地關閉。我們利用 'a' 模式和 "open()" 函式以追加模式訪問由 "file_path" 指定的檔案。"file.write(content)" 方法熟練地將 "content" 追加到檔案。成功執行後,控制檯會顯示一條成功訊息。

def append_to_file(file_path, content):
   try:
      with open(file_path, 'a') as file:
         file.write(content)
         print("Data appended successfully!")
   except Exception as e:
      print(f"An error occurred: {e}")

讀取和寫入模式:'r+'

讀取和寫入模式 ('r+') 證明是一個充滿活力的組合,可以同時讀取和寫入檔案資料。當您以 'r+' 模式開啟檔案時,檔案不會被截斷,從而保護其現有內容。但是,寫入資料將覆蓋當前檔案位置的內容。要追加資料而不覆蓋,使用 'a' 模式是明智的選擇。

示例

在此示例中,我們介紹了 "read_write_file()" 函式,它以 "file_path" 作為輸入,從檔案讀取現有內容,並使用 'r+' 模式將新內容寫入檔案。'with' 語句確保檔案在套件結束後熟練地關閉。我們利用 'r+' 模式和 "open()" 函式以讀取和寫入模式訪問由 "file_path" 指定的檔案。"file.read()" 方法讀取檔案中的現有內容,並將內容儲存在 "content" 變數中。隨後,我們使用 "file.write()" 方法將 "\nNew content added." 追加到檔案的末尾,保留其現有內容。控制檯在完成讀取和寫入任務後欣喜地顯示成功訊息。

def read_write_file(file_path):
   try:
      with open(file_path, 'r+') as file:
         content = file.read()
         file.write("\nNew content added.")
         print("Data read and written successfully!")
   except FileNotFoundError:
      print(f"The file '{file_path}' does not exist.")

掌握 Python 中各種檔案開啟模式是高效檔案處理的基本原則。無論您是想讀取、寫入、追加還是處理二進位制資料,對檔案開啟模式做出明智的選擇都決定了您所需檔案操作的成敗。使用 "os" 模組或現代的 "pathlib" 模組使您能夠輕鬆地以各種模式開啟檔案,從而使您能夠輕鬆執行各種檔案處理任務。

在本文中,我們遍歷了 Python 中的五種不同的檔案開啟模式:讀取模式 ('r')、寫入模式 ('w')、二進位制模式 ('b')、追加模式 ('a') 和讀取和寫入模式 ('r+')。每種模式都配有啟發性的程式碼示例和方法論解釋,讓您深入瞭解其應用。有了這些新獲得的知識,您可以大膽地操作檔案並在 Python 中構建強大的檔案處理應用程式。

在繼續您的 Python 探索之旅時,請記住謹慎地使用檔案操作,尤其是在使用寫入和追加模式時,因為不小心使用可能會導致資料丟失。透過專注的練習和積累的經驗,您將掌握檔案處理的藝術,鞏固您作為熟練 Python 程式設計師的地位。

更新於: 2023年8月22日

6K+ 閱讀量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.