统计学生提交作业情况
2015-01-17 13:19
323 查看
在研一上学期当了C语言课程的助教,每周老师都会布置作业,同学们会把作业打包成压缩文件上传到学院ftp,我的任务是下载同学的作业并统计提交人数,抽样检查作业。学生的压缩文件按学号(9位)、姓名、日期的格式命名,于是我想统计提交情况的任务可以用python来解决,以减轻我的工作量。
程序的基本思路是:
1、老师给我一个保存所有学生信息(学号、姓名)的excel表,我先把所有学生的学号保存到一个字典的key中,value初始化为0代表学生提交的次数
2、遍历提交的所有文件并取出学号,并在前面建好的字典中把对应key的value加1
3、遍历完成后,如果保存在字典中的value等于0,代表对应学号的同学没有提交作业,就把学号打印出来
当然以上方法会有误差(因为有些同学文件不按格式命名等),于是我就用以下方法检验:
在遍历文件后,我们就知道总的提交文件数目,重复提交数目,两者相减就是总的提交人数,与没提交同学相加,是否是总的学生数。如果是,代表没有提交作业的同学数目是正确的;否则,代表没有提交作业的同学数目有误,只能手工统计没有提交作业的同学。幸好,大多数情况下没有提交作业的同学数目是正确的,因此该程序还是有实际应用价值。
代码如下:
程序的基本思路是:
1、老师给我一个保存所有学生信息(学号、姓名)的excel表,我先把所有学生的学号保存到一个字典的key中,value初始化为0代表学生提交的次数
2、遍历提交的所有文件并取出学号,并在前面建好的字典中把对应key的value加1
3、遍历完成后,如果保存在字典中的value等于0,代表对应学号的同学没有提交作业,就把学号打印出来
当然以上方法会有误差(因为有些同学文件不按格式命名等),于是我就用以下方法检验:
在遍历文件后,我们就知道总的提交文件数目,重复提交数目,两者相减就是总的提交人数,与没提交同学相加,是否是总的学生数。如果是,代表没有提交作业的同学数目是正确的;否则,代表没有提交作业的同学数目有误,只能手工统计没有提交作业的同学。幸好,大多数情况下没有提交作业的同学数目是正确的,因此该程序还是有实际应用价值。
代码如下:
import xlrd import os data=xlrd.open_workbook(r'K:\工作\助教\14级C作业统计.xls') #打开excel,路径可改 table=data.sheets()[0] #得到第一个工作表 nrows=table.nrows #获取行数 map={}#保存学号及是否交作业 for i in range(nrows): cell=table.cell(i,1).value num=str(cell)[0:9] if num.isdigit(): map[num]=0 fileNum=0 for filename in os.listdir(r'K:\工作\助教\20141224'):#包含学生作业的文件夹,路径可改 fileNum+=1 #文件夹中文件总数 studentID=str(filename)[0:9] #学生作业命名方式是前面9位为学号或者后面9位为学号 studentID2=str(filename)[-13:-4] if studentID in map: map[studentID]+=1 if studentID2 in map: map[studentID2]+=1 notAdmitNum=0#没有提交人数 keys=map.keys() print("没交:") for key in sorted(keys): #print(key,map[key]) if map[key]==0: print(key) notAdmitNum+=1 admitMoreNum=0#提交不止一次人数 print("\n提交不止一次") for key in sorted(keys): if map[key]>1: print(key,map[key]) admitMoreNum+=(map[key]-1) print("\n文件夹总文件数:%d"%fileNum) print("重复提交次数:%d"%admitMoreNum) print("总的提交人数:%d"%(fileNum-admitMoreNum)) print("总的没交人数:%d"%notAdmitNum)
相关文章推荐
- 统计学生提交作业情况
- 设计一个学生作业完成情况的管理程序
- 全国小初高学校与教师,学生情况统计
- 设计一个学生作业完成情况的管理程序
- 通过读取CallRoll文件统计学生考勤情况
- python分析作业提交情况
- 设计一个学生作业完成情况的管理程序
- 作业3-2 输入一个正整数 n,再输入 n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。
- python分析作业提交情况
- 统计学生考试情况
- 设计一个学生作业完成情况的管理程序
- 录入学生作业情况的小程序 —— 1、查看学生作业情况 2、录入学生作业情况 3、可以让输入3次,需要为空的情况
- 设计一个学生作业完成情况的管理程序
- 设计一个学生作业完成情况的管理程序
- 2014级学生第一学期C++学习情况统计
- 统计svn 代码提交情况
- 学生成绩简单统计-结构体的应用-浙大第三周作业
- 统计学生上交作业数量sed
- 写的作业 用结构体统计学生信息
- 我的学生在CSDN上发表博文情况统计