- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个面部识别和考勤系统,它在 CSV 文件中写入姓名和时间。为了避免多次登录同一个人,我正在编写一个逻辑来检查姓名是否存在于考勤中已经登录,如果没有,则出勤率会丢失。但是尽管已经登录过一次,但会一遍又一遍地记录相同的名称,我无法理解问题。
这是代码片段:
在脸部下方绘制一个带有名称的标签
cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED)
font = cv2.FONT_HERSHEY_DUPLEX
cv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)
#markAttendance(name)
with open('ATTLOG.csv', "r+") as g:
myDatalist = g.readlines()
nameList=[]
for line in myDatalist:
entry = line.split(',')
nameList.append(entry[0])
if name not in nameList:
now=datetime.now()
dtString = now.strftime('%H:%M:%S')
g.writelines(f'\n{name},{dtString}')
最佳答案
您有一个逻辑错误:您将整个文件读入 nameList
,然后检查当前名称是否在 nameList
的第一项中.如果不是,则将其写入文件:如果您当前的名称稍后出现在 nameList
中,虽然你不应该写,但你会写。
您需要阅读整个文件,然后检查它是否是任何地方 在您的 nameList
然后再决定要不要写。
为了检查你应该使用 set()
- 检查“在”比使用列表要快得多。
already_in_file = set()
with open('ATTLOG.csv', "r") as g: # just read
for line in g:
already_in_file.add(line.split(",")[0])
# process your current entry:
if name not in already_in_file:
with open('ATTLOG.csv', "a") as g: # append
now = datetime.now()
dtString = now.strftime('%H:%M:%S')
g.writelines(f'\n{name},{dtString}')
关于python - 我正在开发一个面部识别和考勤系统,该系统将姓名和时间写入 CSV 文件,但同一个人被多次记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66516246/
我正在寻找可以支持人脸检测、识别和聚类的SDK。我们试过了Pittpatt ,而且效果很好,但是被谷歌收购了,因此卡住了新契约(Contract)。所以我们不得不决定使用OpenCV,业务风险低,技术
我正在努力寻找正确的方法来调整大小、裁剪和图像,以及重点区域。在我的例子中,焦点区域是图像中检测到的人脸,我需要确保该区域在裁剪后的版本中可见。 我有例如给出的重点领域。 face_height、fa
我们的应用程序从钥匙串(keychain)中保存和检索项目,以便使用生物识别技术进行身份验证。 在第三次错误尝试时,我被重定向到设备 PIN 码。相反,想提示一条消息,指出 3 次错误尝试。 检索项目
我是一名优秀的程序员,十分优秀!