这两天接了活儿,要把几套试卷打乱重组,给学生增加点学习压力。本想着不就复制粘贴的事吗。眼睛都没眨一下就拍着胸脯答应了:
“没事,分分钟的事!”
然而我还是太年轻(莽撞),打开试卷一看,每套题一百道,且试卷与试卷之中还有重复的题。
我……真是连第一套试卷一百道题看完的耐心都没有。复制粘贴是不可能复制粘贴的了。天天在教学生python,这种重复劳作的事情,应该可以请小派来帮我解决一下。
于是我兴致勃勃地打开Jupyter Notebook,并熟练地走上了百度之路。
我的诉求很简单:就是把word文档中的题目和答案写入excel文件不同的列中,然后再重新随机生成出新的word版本的试卷。
看,就是这么简单。我们来分步走:
第一步,把word试卷中的题目和选项读取出来,分别存入excel工作表的列中。
百度一搜一大把,python的小脚本一个比一个简单。然鹅,复制过来换上自己的文件路径一运行,一个又一个的错误接二连三的爆出来:
首当其冲就是模块找不到。于是百老师和众多网友大公无私的帮助下,我顺利地装好了缺少的第三库,大约,也就装了那么几个:
pip install docx
pip install openyxl
pip install tools
pip lxml
……
反正也就那么五六七八个吧。哦,对了,有时,你安装的时候,会提示库/模块已存在 :
但是运行代码却找不到,原因不知道,解决方法却很简单粗暴,就是把它卸了再装:
pip uninstall 库名
前期的铺垫有点长,我就这个装酷(库)卸库在装酷(库)差不多就整了一个多小时。等到正式读文件的时候,心塞的心情又来了:
路径找不到!我的文件明明就在那里,我写的路径也是那里,为啥你就找不到呢?小派你瞎吗?
然而不是它瞎,是我瓜,文件名起了个text 加上"/"之后 “/t”就成了一个转义字符,它变心(身)了。所以小白的困扰那些企业大咖永远都不懂。这么简单的事到你这都能成个坎儿,真让大神直叹佩服。
总而言之,言而总之,在我调试了99+次代码,总耗时三个多小时之后,我终于能成功地将word试卷中的题干和选项分别写入excel工作表的不同列中了。
当然,我写的程序可不是一个随便的程序,不是随便一个word都能够用的。必须要题干一行、选项一行再能顺利读出,正确写入。
孩子(程序)刚出身,还年轻,希望大家多多包涵,社会会教它做人的(我会继续完善的!)
第二步 把excel表格中的题目随机生成word试卷
这又是一个悠悠漫长的过程,耗费了我今天中午直到晚上的功力。当然,直接实现到没有,中间历经了一些转折:
1.将xlsx文件转换成csv文件
2.利用random函数从csv文件中随机取出试题条目,生成的random.csv文件
3.将random.csv文件按照指定格式写入word文档中,随机试卷生成。
果然,社会已经叫它做人了。但是经受的挫折还不过,比如,生成试卷的文档格式还不够规范,生成的随机试卷中有重复的题没有排除(主要是那个excel题库中有重复的试题没有排除),单选题题目的顺序变了,但还未实现选项的循序打乱(主要是甲方要求不改变选项顺序,怕给学生压力大了,他们受不了)
真真是一个呵护孩子的时代!