开源课程平台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 )