Moodle

使用Python快速整理Moodle测验作答数据

字号+ 作者:hanyufeng 来源: 2022-07-18 21:10:00 我要评论( ) 阅读:

使用Python的openpyxl库,快速整理Moodle测验作答数据...

开源课程平台Moodle的测验模块,题型全面、功能强大,能节省很多批改的时间。


测验的详细成绩数据、详细作答数据也都可以导出为Excel文件,可作进一步分析使用或打印存档。


在打印存档时,有部分数据可能是不需要或者重复太多的。例如作答数据中的各小题的题目说明(“试题1、试题2……”)、标准答案(“标准答案1、标准答案2……”),每一行的这一列都是重复的,而且一般不需要打印出来。


图片


但是如果手工整理,每一题都需要删除2列,题目数量较多时(标准考试常在50题以上),比较费事。




不整理,直接打印,费纸。


手动整理,又费时费力。而且这样处理的话,程序自动批改所节省的时间、精力,在这个环节又多消耗了,使Moodle的应用效果打了折扣。


对于这种情况,我们可以使用Python的openpyxl库,编写一段代码,快速删除不需要的数据列。代码调试通过后可以重复使用,省去手动整理的时间,更好地辅助Moodle的应用。


(以下代码在Python 3.9,openpyxl 3.0.7 运行环境下调试通过) 

import openpyxl # 如果没安装openpyxl,先使用pip或pip3安装

#创建工作簿对象
wb = openpyxl.load_workbook(filename='./期末考试-回答.xlsx')
# 根据实际情况修改文件名和文件路径 ./ 表示当前文件夹
sheet = wb["期末考试"] # 引号中填写实际使用的工作簿名称

# 倒序(从右到左)删除所有带“试题”或“标准答案”的列
for i in range(sheet.max_column,1,-1):
    if "试题" in sheet.cell(row=1,column=i).value or "标准答案" in sheet.cell(row=1,column=i).value:
        sheet.delete_cols(i)
wb.save('期末考试-回答-存档.xlsx') # 另存一个文件


(Python开发环境,可以使用 Anaconda3 和 Jupyter Notebook )

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。