基于Python实现自动查找未交作业人员名单
Posted nufe_wwt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于Python实现自动查找未交作业人员名单相关的知识,希望对你有一定的参考价值。
因为经常需要收班级同学作业,每次都得检查齐了没,要是少了又要看是谁没交,就很烦。于是乎就像想写个python小代码跑一跑。这是个基础的,总之就是还没有完善了。之后可能会完善也可能就这样了。反正也就我和pua我的室友用得到。
没完善是什么意思呢。就是交上来的文件中文字符只能是名字,或者说只能是一类东西,如果交上来一个王小明的西游记读后感,那这个程序就找不出来了,那这个怎么找呢?这不是没完善嘛¥%……
# -*- coding = utf-8 -*-
import xlrd
import os
import re
data = xlrd.open_workbook('***班级名单的绝对/相对路径***')
table = data.sheet_by_index(0)
set_All_Persons = set(table.col_values(2)) # 名单中第三列是姓名
dirs = "***目标文件夹绝对路径***"
set_Done_Persons0 = os.listdir(dirs) # 这一个函数就可以取出目标文件夹所有文件的文件名
set_Done_Persons = [] # 先初始化一个已经交了作业的人员名单列表
for i in set_Done_Persons0:
res = ''.join(re.findall('[\\u4e00-\\u9fa5]',i)) # \\u4e00-\\u9fa5是ASCII码的所有中文字符,这里
set_Done_Persons.append(res) # 这里是把正则处理过的每个名字放在人员名单列表里
set_Done_Persons = set(set_Done_Persons) # 强制类型护转化为集合,好用.difference,我也不知道list有没有类似的,有的话可以说下
set_Undo_Persons = set_All_Persons.difference(set_Done_Persons) # 这个就是处理过后,没有叫作业的人员名单集合了
print("%d%s"%(len(set_Undo_Persons),"人未交:"))
count = 0
for i in set_Undo_Persons:
count += 1
if count%6==0:
print()
print(i,end=', ')
先这样写吧。总比一个一个对好吧,完善的再说,下次一定!
以上是关于基于Python实现自动查找未交作业人员名单的主要内容,如果未能解决你的问题,请参考以下文章
ThinkPHP5作业管理系统中处理学生未交作业与已交作业信息