文章目录
- 1.目的介绍
- 2.代码介绍
- 2.1读取交上来的作业文件夹,并保存
- 2.2读取全部学生名单并对比交上来的名单,返回未交的‘坏小孩’
- 3.未来期望
1.目的介绍
作为一名学委,常常为收作业感到头疼,尤其赶到期末周,各科作业以各种形式发给我,作业人数齐还好,不齐全还要找谁没交,尤其浪费时间,所有我就用python写了一个小脚本,可以帮助大家快速查找到谁没交作业,下面是代码展示
2.代码介绍(只需要导入os库即可)
2.1 读取交上来的作业文件夹及保存
函数会保存到此路径下的一个res.txt文件下,以方便下面对比的时候用
def ReadfileToTxt(filepath,infiles=True,indirs=True,): """ 输入检查文件路径 函数会将文件中的目录名字或者路径名字写入当前路径下的txt文件 :param infiles 为是否检查文件夹里的文件名字 indirs 为是否检查文件夹里面的目录名字 :return """ file = open("res.txt", 'w').close() for root, dirs, files in os.walk(filepath, topdown=False): if infiles: for name in files: with open('res.txt',mode='a',encoding='utf-8') as f: f.write(f"{name}\n") print(name) if indirs: for name in dirs: print(os.path.join(root, name))
2.2 读取全部学生名单并对比交上来的名单,返回未交的‘坏小孩’
注意全部学生名单 要一个学生一行 因为在下面用的是f.read().spiltlines()
def Contrast(Allpeopath): """ :param Allpeopath:包含全部人员名单的txt文件 :return:没交人员的列表 """ badpeople = [] #保存未交作业的人员名单 with open(Allpeopath, encoding='utf-8') as f: name_list = f.read().splitlines() i = 0 for name in name_list: fopen = open("res.txt", 'r', encoding='utf-8') line = fopen.read() if name in line: i+=1 print(f'{name}交了,共有{i}个人交了') else: badpeople.append(name) for people in badpeople: print(f'{people} 没交作业!!')
2.3 运行代码
注意在文件地址前面添加r
ReadfileToTxt(r"C:\Users\Lenovo\Desktop\智能2001 机器学习实验三",indirs=False) Contrast(r"E:\pythonProject\python_tool\reach_person\智能2001学生名单.txt")
2.4运行结果

3.未来期望
代码目前还只能在python编译器上进行运行,以后尽量使用pyqt将其打包成一个小软件供大家使用。
浙公网安备 33010602011771号