[英]Adding new row in a CSV Python
我將新行添加到已經存在的特定CSV中,但是由於未知原因,新行與最后一行一起添加,而不是在新行中添加。
因此,它在CSV中顯示為:
11-07-2016,38361,9076,14487,292,741614-07-2016,38417,9767,15832,301,7416
何時應顯示為:
11-07-2016,38361,9076,14487,292,7416
14-07-2016,38417,9767,15832,301,7416
我的代碼是:
import time
import csv
today = (time.strftime("%d-%m-%Y"))
newRow = """%s,%s,%s,%s,%s,%s""" % (today, yes, ok, war, leg, noag)
fd = open('data.csv','a')
fd.write(newRow)
fd.close()
知道為什么會這樣嗎? 非常感謝。
看起來文件結尾沒有換行符。 嘗試在添加新行之前添加一個:
newRow = "\n%s,%s,%s,%s,%s,%s\n" % (today, yes, ok, war, leg, noag)
with open("data.csv", "a") as f:
f.write(newRow)
import time
import csv
today = (time.strftime("%d-%m-%Y"))
newRow = """%s,%s,%s,%s,%s,%s""" % (today, yes, ok, war, leg, noag)
with open('data.csv','a',newline='') as fd:
writer = csv.writer(fd)
writer.writerow(newRow)
它是writerow而不是write,它將自動添加新行。 和newline =''可防止您跳過一行。
現在,您不使用csv模塊,而只是像文本文件一樣進行常規寫入。
要將文件視為csv更改:
fd.write(newRow)
至:
csv_writer = csv.writer(fd)
csv_writer.writerow(newRow)
如果要將文件編輯為文本文件,則應手動添加“換行符”,因此:
fd.write('\n' + newRow)
將起作用(在這種情況下, import csv
是多余的)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.