数据挖掘研讨课结束了,这门课的考核方法是每个同学根据班里面同学的课堂表现打分,然后老师再取截断平均值作为最后的分数。
于是我就想,能否用python进行自动化打分呢,答案是肯定的。
老师发给我们的课堂发言记录是pdf格式,首先我在网上下载了迅捷pdf转word工具,由于这个不付费只能一次转5页,所以我又下载了迅捷pdf编辑器,一次删除5页图片,最后将数据汇总到txt中。
通过观察可以很容易发现,记录中记录同学信息的格式是(xxx, xxx,xxx),于是可以使用python将所有同学信息提取出来,并且统计每个同学的回答频率,最后根据回答频率给出分数。
打分表是一张xlsx格式的表格,那里面详细记录了同学学号,姓名和班级信息,将上述过程计算得到的分数和信息录入数据库,然后再根据表格的学号在数据库中查询成绩,再录入表格中,这样,就大功告成啦。
python使用到的库:
xlrd xls读取库
xlwt xls写入库
pymysql python操作mysql库
xlutils 表格复制库
具体代码如下:
#coding:utf-8
import xlrd
import xlwt
from xlutils.copy import copy
import pymysql.cursors
#提取出()的内容
def extract():
with open("学生记录.txt","w") as data:
with open("数据挖掘课程记录.txt", "r") as file:
lines = file.readlines() #读取每一行
for line in lines: #从每一行中读取出()内容
if(line.find("(") != -1):
tuple = line.split("(")[1].split(")")[0]