我在這個 python 錯誤上遇到了麻煩。我想將更改的變數保存到 csv 檔案中,但是當代碼使用不同的變數再次運行時,它會覆寫前一個變數。我沒有預先確定變數,它們是在代碼運行時生成的,因此每次回圈將回圈程式時都會傳遞不同的電子郵件。
這是我的代碼:
import csv
def hello(hme):
header = ['email']
data = [hme]
with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
writer = csv.writer(f)
writer.writerow(header)
writer.writerows(data)
hello(["[email protected]"])
謝謝!
uj5u.com熱心網友回復:
您應該以追加方式打開檔案,而不是寫入:'a' 而不是 'w'
import csv
def hello(hme):
header = ['email']
data = [hme]
with open('countries.csv', 'a', encoding='UTF8', newline='') as f:
writer = csv.writer(f)
writer.writerow(header)
writer.writerows(data)
hello(["[email protected]"])
uj5u.com熱心網友回復:
只需將 'w' 替換為 'a' ,其中 'w' 寫入檔案(覆寫),而 'a' 會在您寫入檔案時附加檔案。
with open('countries.csv', 'a', encoding='UTF8', newline='') as f:
對于標題“電子郵件”,只需在添加電子郵件回圈之前撰寫它,以免重復它
uj5u.com熱心網友回復:
先讀取檔案內容;添加新資料;將資料寫入檔案。
def hello(hme):
try:
with open('countries.csv', encoding='UTF8', newline='') as f:
stuff = list(csv.reader(f))
except FileNotFoundError:
# this must be the first time the function was called
stuff = [['email']]
stuff.append([hme])
with open('countries.csv', 'w', encoding='UTF8', newline='') as f:
writer = csv.writer(f)
writer.writerows(stuff)
如果您的檔案確實只有一列,則您實際上不需要使用 csv 模塊。只需將新行附加到檔案中即可。
# assumes header is present
def hello(hme):
with open('countries.csv', 'a', encoding='UTF8') as f:
f.write(hme '\n')
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/494948.html
上一篇:變數變化時觸發函式
