基于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作业管理系统中处理学生未交作业与已交作业信息

运维自动化--cvs转换成xls,并且邮件发送给相关人员

markdown Middle + Backend开发人员(Python)的测试作业

Ansible自动化部署与实际项目应用介绍

python人员信息管理系统(当期末作业)