我有一个python脚本,它告诉我什么是“期间”(学校),然后输出到csv文件中:
import datetime
import csv
format = "%H%M"
today = datetime.datetime.today()
s = today.strftime(format)
period = 0
ofile = open('Period.csv', "wb")
writer = csv.writer(ofile, delimiter=',')
if s > "0845" < "0945":
period = 1
if s >= "0945" < "1120":
period = 2
if s >= "1120" < "1220":
period = 3
if s >= "1220" < "1335":
period = 4
if s >= "1335" < "1430":
period = 5
print
print s
print period
writer.writerow([period])
ofile.close() 我有另一个python脚本,当学生通过磁卡读卡器刷卡,然后输出到CSV文件中时,就会抓取学生的名字。
我想要发生的是,当他们刷卡时,他们的名字会被导入CSV,然后这段时间就会被导入到它旁边(例如。john,4)。然后下一个学生将刷卡,他们的名字和期间将放在最后一个学生的下面。
John,4
Marcus,4但是每次刷卡时,csv文件就会被擦除,而当前学生的名字是其中唯一的一个。
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() 这只是一个临时的模拟,最终的代码将包含两个代码。
TL;DR -如何让python将数据添加到CSV文件中,而不只是重写整个文件?
发布于 2017-07-20 06:01:34
但是每次刷卡时,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检查文件操作
https://stackoverflow.com/questions/45204313
复制相似问题