繁体   English   中英

在CSV Python中添加新行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM