我创建了一个算术测验,询问学生一些问题,然后将他们的名字和分数保存到csv文件中。
我想创建一段代码,询问csv文件的if语句。如果名称已在第一列中,则将新分数放在新列上。
这就是我将名称和分数写入csv文件所做的工作。
f
这会将名称和分数写入类文件,但在写入文件之前我需要一个if语句。
伪代码:
2 * D
所以说我再次参加了测验并且我的名字已经在csv上,我需要代码来获取我的新分数并将其添加到我在csv上的现有记录中(在下一栏保存新分数)。
答案 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()