我正在使用磁卡读卡器读取磁卡的输入。这些卡有三个轨道,但每个轨道在每个轨道上都包含相同的精确数据。当我刷卡时,第一个轨道被写入一个变量,然后写入一个 csv 文件供以后使用。问题是,在读取每个磁道后,输入一个返回字符,以便我正在运行的 while 循环为每张刷卡读取和写入相同的数据 3 次。有什么方法可以让前两个返回 null 以便我只获得一次写入的数据,或者有没有其他方法可以这样做,以便我只获得一次文本和为每张卡写入一次的数据? 如果您对此有任何疑问,请告诉我。我试图尽可能清楚地表达它。我还将包括代码。
#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