以“w”模式打開文本檔案并在其中寫入內容后;當我想在追加模式下打開同一個檔案(因為我想保持第一行的內容相同)它會覆寫內容而不是在它下面添加。
以下是示例:
代碼:
hand1 = open("test.txt", "w")
hand1.write("Good Morning")
hand1.close()
hand2 = open("test.txt", "a")
hand2.write("\n" "Hello")
hand2.close()
文本檔案:
Good Morning
Hello
無論我運行這個 python 檔案多少次,它仍然給我相同的輸出:
文本檔案:
Good Morning
Hello
我期望輸出的位置(如果我多次運行 python 檔案):
文本檔案:
Good Morning
Hello
Hello
Hello
有誰知道如何解決這個問題?如果未打開“w”模式,“Hello”可能會出現多行。
uj5u.com熱心網友回復:
每次運行腳本時,都會創建一個新檔案來覆寫舊檔案。您可以添加 if 陳述句來檢查您的檔案是否已存在,如果不存在,則創建一個。
import os
if not os.path.isfile("test.txt"):
hand1 = open("test.txt", "w")
hand1.write("Good Morning")
hand1.close()
hand2 = open("test.txt", "a")
hand2.write("\n" "Hello")
hand2.close()
uj5u.com熱心網友回復:
從代碼看來,您w首先以模式打開檔案,然后以模式打開a。因此,每次運行此檔案時,它都會首先以寫入模式打開它,從而覆寫較早的內容。此外,當您再次運行腳本時,它不僅會執行 append 部分,還會運行整個腳本。如果你想要這種行為,你可以這樣做。
- 傳遞一個引數作為
-w到write檔案或-a到append檔案或兩者-wa做write和append該檔案。 - 根據引數決定執行代碼的哪一部分。
因此,執行腳本的可能方法可以是python test.py -w, python test.py -a,python test.py -wa
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364252.html
