使用if语句将列添加到csv文件

时间:2015-06-27 10:48:22

标签: python csv

我创建了一个算术测验,询问学生一些问题,然后将他们的名字和分数保存到csv文件中。

我想创建一段代码,询问csv文件的if语句。如果名称已在第一列中,则将新分数放在新列上。

这就是我将名称和分数写入csv文件所做的工作。

f

这会将名称和分数写入类文件,但在写入文件之前我需要一个if语句。

伪代码:

2 * D

所以说我再次参加了测验并且我的名字已经在csv上,我需要代码来获取我的新分数并将其添加到我在csv上的现有记录中(在下一栏保存新分数)。

1 个答案:

答案 0 :(得分:0)

如果您以ini_set('error_log','/var/log/apache2/error.log');(追加)模式打开文件,那么显然您无法修改或更新文件中的现有记录,因为所有写入都发生在文件中的最后一个位置之后。

您应该将整个CSV文件读入内存,更新那里的记录,然后回写整个文件(最好是在您完成所有修改后)。

这样的事情可行:

"a"

然后,您将拥有一个易于更新的所有姓名及其分数的字典(使用import csv def readcsv(filename): with open(filename,"rb") as csvfile: # assuming Python 2 return dict(csv.reader(csvfile)) )。缺点是您将丢失条目存储在CSV文件中的顺序。

将字典另存为CSV文件也很简单:

setdefault()