作为一个学委总是被查谁没交作业这种事所困扰,python写一个小程序帮我自动化查谁没交作业
用python实现的,因为find函数都可以直接找出文件名中的名字,最后代码量都不到40行
文件名乱七八槽的也可以识别,只要文件名带学生姓名就可以识别,但是有点小bug
用find函数有缺陷,如果一个班里有人既有张三也有张三四,即一个人名是另一个人名的前缀的话,就会有bug,搞了半天没有解决,因为我们班同学没有这种情况所以就放弃了
如果有哪位大佬解决了这个问题记得私信我!!!
班级所有人的人员名单
提交作业的文件
代码:
#coding=utf-8
import os
import pandas as pd
import copydef GetAllFileNamesInDirectory(mulu):all_files = []for root, _, files in os.walk(mulu):for file in files:all_files.append(file)return all_files
list_path = GetAllFileNamesInDirectory("D:\\Desktop\\幼儿园大班作业") #作业存放的路径path = 'D:\\Desktop\\名单.xlsx' #班级人员名单表格的路径
frame = pd.read_excel(path)
listClassOwners=frame.values.tolist()
peopleWhoDonHandInTheirHomework = listClassOwners
personHandingInHomework = []
print(path+"里面一共有"+str(len(listClassOwners))+"位同学")
for allfile in list_path:for num_name in listClassOwners:for num in num_name:if allfile.find(num)!=-1 :ls=[]ls.append(num)personHandingInHomework.append(num)if ls in peopleWhoDonHandInTheirHomework: peopleWhoDonHandInTheirHomework.remove(ls)else:passbreak
print("一共有"+str(len(personHandingInHomework))+"位同学交作业")
print("交作业的人有:"+str(personHandingInHomework)+"")
print("一共有"+str(len(peopleWhoDonHandInTheirHomework))+"位同学没有交作业")
print("没有交作业的人有:"+str(peopleWhoDonHandInTheirHomework))
运行结果: