在CSV Python中添加新行

在CSV Python中添加新行,python,csv,Python,Csv,我正在将新行添加到已存在的特定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 cs

我正在将新行添加到已存在的特定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)

看起来文件结尾没有换行符。在追加新行之前,请尝试添加一行:

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)
它是writerow而不是write,它会自动添加一行新行。和newline=''防止您跳过一行


它是writerow而不是write,它会自动添加一行新行。newline=''防止您跳过一行。

现在您没有使用csv模块,只使用常规的文本文件写入方式

要将文件视为csv更改,请执行以下操作:

fd.write(newRow)
致:

如果要将文件编辑为文本文件,应手动添加“新行字符”,以便:

fd.write('\n' + newRow)

将起作用(在这种情况下,
导入csv
是多余的)

现在您没有使用csv模块,只使用常规的文本文件写入方式

要将文件视为csv更改,请执行以下操作:

fd.write(newRow)
致:

如果要将文件编辑为文本文件,应手动添加“新行字符”,以便:

fd.write('\n' + newRow)

将起作用(在这种情况下,
导入csv
是多余的)

您解决了他的具体问题,但这有助于他了解出了什么问题吗?事实上,我想我理解,添加\n它迫使新行位于新行中,对吗?谢谢。@Gonzalo如果您将该文件用作文本文件,那就对了。但是,如果要将其作为csv模块的csv文件使用,则无需手动添加
\n
。但现在文件的每一行之间都有一个空行。。每次我运行代码时都会发生。。所以一定是出了什么问题。@Gonzalo,因为你在新行的开头和结尾添加了
\n
。你解决了他的具体问题,但这有助于他理解哪里出了问题吗?事实上我想我理解了,添加了\n它迫使新行进入新行,对吗?谢谢。@Gonzalo如果您将该文件用作文本文件,那就对了。但是,如果要将其作为csv模块的csv文件使用,则无需手动添加
\n
。但现在文件的每一行之间都有一个空行。。每次我运行代码时都会发生。。所以一定有什么地方出错了。@Gonzalo,因为您在新行的开头和结尾添加了
\n