【发布时间】:2015-09-01 18:12:21
【问题描述】:
我正在使用磁卡读卡器从磁卡中读取输入。这些卡有三个轨道,但每个轨道在每个轨道上都包含相同的精确数据。当我刷卡时,第一个轨道被写入一个变量,然后写入一个 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
【问题讨论】:
-
为什么双
while True循环? -
我在某个时间点之间有更多的代码,但把它拿出来,就再也没有抓住它。我打算稍后清理它。所以,没有理由这样做。不过还是谢谢你!
-
如果值相同且长度相同,为什么不获取值列表并在
n索引后中断,其中n是所需值的长度?
标签: python csv magnetic-cards cardreader