基于Python实现学生作业提交情况统计
絮絮叨叨
老板给了一份学生期末作业的文件,里面有两个文件夹,分别是优秀作业和良好作业,让我把作业情况统计一下。
***,全是这种无脑体力活,打开文件夹一看,心态也是炸,文档交的名字那叫一个烂七八糟。不知道是交了多年作业的不长进,还是收了多年作业的不长进。

牢骚归牢骚,事来了,活要干呢。
干!
import os
import xlrd
import pandas as pd# 获取文件名
def get_file_names(path):L = []for root, dirs, files in os.walk(path):for file in files:L.append(os.path.join(root, file))return L# 获取名单
def excel_deal(you,liang):# 打开文件data = xlrd.open_workbook('names.xlsx')# 查看工作表data.sheet_names()print("sheets:" + str(data.sheet_names()))# 通过文件名获得工作表,获取工作表1table = data.sheet_by_name('Sheet1')# 获取行数和列数 行数:table.nrows 列数:table.ncolsprint("总行数:" + str(table.nrows))print("总列数:" + str(table.ncols))out_list = []for rowNum in range(table.nrows):if rowNum > 0:rowVale = table.row_values(rowNum)id_str = rowVale[0]name_str = rowVale[1]value0 = 0value1 = 0value2 = 0#按照学号查找if you.find(id_str) > 0:value0 = 1if liang.find(id_str) > 0:value0 = 2#按照 姓名查找if you.find(name_str) > 0:value1 = 1if liang.find(name_str) > 0:value1 = 2#综合if value0 == 0 and value1 == 0:value2 = 0else:if value0 > 0 and value1 > 0 and value0 != value1:print('-Error--'+name_str)value2 = max(value0, value1)value_str = str(value0)+','+str(value1)+','+str(value2)# print(value_str)out_list.append([rowVale[0],rowVale[1],value0,value1,value2])print(out_list)name = ['学号', '姓名', '学号比对', '姓名比对', '综合']out_data = pd.DataFrame(columns=name, data=out_list)print(out_data)out_data.to_csv('./result.csv', encoding='gbk')out_data.to_excel('./result.xlsx', encoding='gbk')#print(str(rowNum)+','+name_str+','+str(value)+'\n')if __name__ == '__main__':you_data = get_file_names('./you/')you_str = ''.join(you_data)print(len(you_data))print(you_str)liang_data = get_file_names('./liang/')liang_str = ''.join(liang_data)print(len(liang_data))print(liang_str)excel_deal(you_str,liang_str)
再说两句
根据作业命名的多样性,采用学号匹配和名字匹配,和提前拿到的名单一一比对,最后对提交情况做一个合并处理。

不唠了,我去催作业了!对于没交作业的漏网之鱼,重点批评。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
