我正在嘗試制作一個采用名字、姓氏和專業的 python 代碼,并將它們放入一個 csv 檔案中。現在我遇到了麻煩,因為這段代碼只是覆寫了第一行中的任何內容。我如何讓它找到最后一行并寫在那一行?
`import csv
read_write = input("ENTER 0 FOR WRITE OR 1 FOR READ: ")
print(read_write)
if (read_write < '1'): # write CSV
outfile = open("group_info.csv", 'w', newline="")
Fname = input("ENTER FIRST NAME: ")
Lname = input("ENTER LAST NAME: ")
Major = input("ENTER MAJOR: ")
info = "{},{},{}\n".format(Fname, Lname, Major)
outfile.write(info)
outfile.close()`
uj5u.com熱心網友回復:
嘗試改變
outfile = open("group_info.csv", 'w', newline="")
到
outfile = open("group_info.csv", 'a', newline="")
看看這是否對你有幫助:) 不知道你為什么指定newline="",但你可能有一個很好的理由這樣做 - 我不會。
uj5u.com熱心網友回復:
目前您正在以寫入模式打開檔案,這會洗掉以前的資料。您需要以追加模式打開它,這將打開前一個檔案并在最后追加新資料。更改您的代碼
outfile = open("group_info.csv", 'w', newline="")
到
outfile = open("group_info.csv", 'a', newline="")
uj5u.com熱心網友回復:
如果要將新資料附加到檔案末尾,則需要像這樣更改第 7 行的代碼:
outfile = open("group_info.csv", 'a', newline="")
它將以“追加模式”打開檔案,這將打開檔案進行寫入,如果存在則追加到檔案末尾。
為什么您的代碼會覆寫第一行中的內容?
因為當我們打開一個檔案時,有一個游標指向檔案的資料。您的讀或寫操作將跟隨游標。如果您以“w 模式”打開檔案,游標將指向第一個位置,因此您的下一個寫入操作將覆寫資料的第一行。當我們以“追加模式”打開檔案時,游標將指向檔案的倒數第二個位置,因此您的下一次寫入操作將追加到檔案的末尾。
如果您需要了解詳細資訊,可以閱讀Python 檔案open。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/337208.html
