我用磁卡读卡器读取磁卡的输入。卡片有三个磁道,但每个磁道上的数据都是相同的。当我写一个文件时,我先写一个csv,然后用它写一个文件。问题是,在读取每个磁道之后,会输入一个返回字符,这样我正在运行的while循环对每个刷卡读写相同的数据三次。有没有什么方法可以让前两个返回为空,这样我只写一次数据,或者有没有其他方法可以让我只得到一次文本,每一张卡片只写一次数据?如果你对此有任何疑问,请告诉我。我试着说得尽可能清楚。我还将包括代码。在
#Card Reader
import getpass
import datetime
import csv
import os
full_date = str(datetime.datetime.now())
short_date = full_date[5:10]
print(short_date)
while True:
while True:
try:
ID = getpass.getpass(prompt = 'Please swipe your ID card. ')
if os.path.exists('.\attendance.csv'):
student_number = open('.\attendance.csv', 'a')
student_number.write(ID[1:10] + '\n')
print('')
else:
student_number = open('.\attendance.csv', 'w')
student_number.write(ID[1:10] + '\n')
print('')
except keyboardInterrupt:
break
您可以使用计数器来跟踪返回值的次数。在
由于您正在开发一个读卡器,所以可以安全地假设另一次刷卡不会干扰柜台,并且每个学生的出勤记录只写一次。在
相关问题 更多 >
编程相关推荐