首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python编写CSV文件并添加数据

使用Python编写CSV文件并添加数据
EN

Stack Overflow用户
提问于 2017-07-20 02:55:14
回答 1查看 602关注 0票数 0

我有一个python脚本,它告诉我什么是“期间”(学校),然后输出到csv文件中:

代码语言:javascript
复制
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)。然后下一个学生将刷卡,他们的名字和期间将放在最后一个学生的下面。

代码语言:javascript
复制
 John,4
 Marcus,4

但是每次刷卡时,csv文件就会被擦除,而当前学生的名字是其中唯一的一个。

代码语言:javascript
复制
 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文件中,而不只是重写整个文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-20 06:01:34

但是每次刷卡时,csv文件就会被擦除,而当前学生的名字是其中唯一的一个。

这是因为每次刷卡时都要写入("wb")文件,这意味着创建了一个新文件(同名的现有文件将被擦除)。因此,您应该使用"ab"模式,它在现有文件中追加值。所以这条线

代码语言:javascript
复制
ofile = open('attendance.csv', "wb")

应改为

代码语言:javascript
复制
ofile = open('attendance.csv', "ab")

现在,每次刷卡时,都会附加值。

您可以在https://docs.python.org/3/tutorial/inputoutput.html#reading-and-writing-files检查文件操作

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45204313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档