Python程式以讀寫模式開啟檔案而不截斷檔案


在Python中,我們可以透過以a+模式開啟檔案來以讀寫模式開啟檔案而不截斷檔案。截斷檔案是指在開啟檔案之前刪除檔案中的現有內容。在本文中,我們將討論如何以讀寫模式開啟檔案而不截斷檔案。

什麼是a+模式

Python中的a+模式用於以讀寫模式開啟檔案而不截斷檔案。當檔案以a+模式開啟時,它允許我們在檔案末尾寫入新資料,而不會影響檔案中的現有資料。

語法

open(‘filename’,’a+’)

以上open方法接受檔名和我們希望檔案開啟的模式作為引數。a+模式表示檔案應以讀寫模式開啟,且不進行檔案截斷。

示例1:使用a+模式將資料寫入檔案

在下面的示例中,我們首先以a+模式開啟檔案“example.txt”並使用write()方法寫入訊息。寫入訊息後,我們使用seek()方法將指標移到檔案開頭。然後使用read()方法列印檔案的內容。

with open("example.txt", "a+") as file:
   file.write("This is a test message.")
   file.seek(0)
   print(file.read())

輸出

This is a test message.

示例2:使用a+模式重寫檔案資料

最初,example.txt檔案是空的,但現在訊息“This is a test message”已寫入檔案。現在,如果您再次執行以上程式碼並使用不同的訊息(例如“This is testing truncation in the file”),它將列印檔案中的原始訊息和新訊息。

with open("example.txt", "a+") as file:
   file.write("This is testing truncation in file.")
   file.seek(0)
   print(file.read())

輸出

This is testing truncation in file.

示例3:使用a+模式讀取和寫入檔案資料

在下面的示例中,我們以a+模式開啟example.txt檔案,並使用seek(0)方法將指標移到檔案開頭。然後,我們使用read()方法讀取檔案的內容並打印出來。

讀取檔案現有資料後,我們現在可以使用write方法將新資料寫入檔案,因為a+模式允許我們讀取和寫入檔案。再次,我們可以透過將指標移到檔案開頭,然後列印檔案內容來讀取檔案的全部內容。

with open("example.txt", "a+") as file:
   file.seek(0)
   print(file.read())
   file.write("This is a new message.\n")
   file.seek(0)
   print(file.read())

輸出

This is a new message.

結論

在本文中,我們討論瞭如何在不截斷檔案的情況下讀取和寫入檔案。a+模式以讀寫模式開啟檔案,而不截斷檔案中的現有資料。當我們向檔案寫入新資料並列印檔案的完整內容時,它會列印現有資料和新資料。在使用Python處理檔案時,a+模式非常有用。

更新於: 2023年4月17日

2K+瀏覽量

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告