我有一个python脚本告诉我什么时期'它(对于学校)然后输出到csv文件:
john,4
我有另一个python脚本,一旦他们通过磁卡读卡器刷出学生卡,然后将其输出到CSV文件中,就会抓住学生的名字。
我想要发生的事情是,当他们刷卡时,他们的名字会被导入到CSV中,然后会在其旁边导入句点(例如 John,4
Marcus,4
)。然后下一个学生将刷卡,他们的名字和期限将被放在最后的学生之下
import csv
import datetime
## EQ ID
eqid = "john" ## Output from magnetic card reader
## CSV writer
ofile = open('attendance.csv', "wb")
writer = csv.writer(ofile, delimiter=',')
writer.writerow([eqid])
ofile.close()
但是每次刷卡时,csv文件都会被删除,然后当前学生的名字就会留在那里。
{{1}}
这只是一个临时模拟,最终的代码将包含两个代码。
TL; DR - 如何将python添加到CSV文件而不是仅重写整个文件?
答案 0 :(得分:0)
但是每次刷卡时,csv文件都会被删除,然后当前学生的名字就会留在那里。
这是因为每次刷卡都会写入("wb"
)文件,这意味着会创建一个新文件(将删除具有相同名称的现有文件)。因此,您应该使用"ab"
模式,该模式在现有文件中附加值。
这一行
ofile = open('attendance.csv', "wb")
应改为
ofile = open('attendance.csv', "ab")
现在每次刷卡都会附加值。
您可以在https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files
查看文件操作