英语单词默写纸 · 练习卷 · 批改统计 · 复习计划
规矩(每次都要遵守)
- 词表只用老师给的。 不内置任何教材词表,不自己补单词、不自己编中文意思、不联网查词、不调用翻译。单词缺中文的,脚本会跳过并列出来,请用户补上;不要替用户填。
- 不改原文件。 单词表、录入表都只读;练习卷、录入表、统计表、重练卷、复习计划一律另存新文件,名字是「原名_练习卷」「原名_批改统计」这样,重名自动加 _1、_2,绝不覆盖。直接粘贴的单词没有原文件,结果默认放桌面,用户说了放哪就放哪。
- 先看词表,再出卷。 第一次拿到单词表,先跑
check,用大白话告诉用户:读到多少个词、几个有例句、发现了什么问题(缺中文、重复、例句里找不到这个词),再问要哪几种题、要不要 A/B 卷。 - 学生信息只给老师 / 家长看。 批改统计里有每个学生的错词,提醒用户不要公开张贴、发到群里或拿来排名;脚本本身不做学生排名。
- 数字以脚本输出为准。 正确率、错词人数不要心算、不要自己改。「待确认」的格子(学生写的中文和释义只对上一部分)请老师自己判断。
- 组件缺了只提示,不自动装。 缺什么脚本会说要运行哪条安装命令,由用户自己决定装不装。
- 跟用户说话用大白话,一步一步讲,不提命令参数和程序里的名字;但用户问在运行什么,要如实说。
用法
脚本:python {baseDir}/scripts/english_words.py <子命令> <单词表> [选项],路径有空格要加引号。
单词表可以是 .xlsx、.csv、.txt;用户直接粘贴的单词用 --text "第一行\n第二行" 传进去。
| 子命令 | 做什么 | 会不会动原文件 |
|---|---|---|
check 单词表 |
读单词表、体检、显示前几个词 | 只读 |
paper 单词表 |
生成练习卷 Word(最后一页是答案) | 只读,另存新文件 |
template 单词表 |
生成默写录入表 Excel(老师填学生写的) | 只读,另存新文件 |
grade 单词表 --answers 录入表 |
批改统计 Excel,可加错词重练卷 Word | 只读,另存新文件 |
plan 单词表 |
艾宾浩斯复习计划 Excel | 只读,另存新文件 |
所有子命令都能加:--text "…"(粘贴的单词)、--sheet 工作表名、--unit "Unit 3"(只用某单元,表里要有「单元」列)、--out-dir 文件夹。
paper 选项:
| 选项 | 意思 |
|---|---|
--types 看中文写英文,看英文写中文,首字母填空,字母乱序,例句填空,连线 |
选题型;不写就全部(没有例句就不出例句填空) |
--each |
每种题型都用全部单词(默认每个词只出现一次,平均分到各题型,避免互相露答案) |
--ab |
同时出 A、B 两套卷(顺序和分配都不同) |
--no-shuffle |
按单词表顺序出,不打乱 |
--count 20 |
随机抽 20 个词出题 |
--seed 编号 |
用上次的卷子编号,出一模一样的卷子 |
--title "第三单元默写" |
卷子标题 |
--show-phonetic |
看英文写中文时显示音标 |
--no-answers |
不要答案页 |
--out 路径 |
保存位置(只出一套卷时) |
template 选项:--students 张三,李四 或 --students-file 名单.xlsx(有「姓名」列)/ 名单.txt(一行一个)。
grade 选项:
| 选项 | 意思 |
|---|---|
--answers 录入表 |
老师填好的默写结果(必填)。支持两种样子:①第一列姓名、每列一个单词(template 生成的就是这种);②三列「姓名、单词、学生答案」 |
--variants |
容忍常见拼写变体:英美拼写(colour/color、centre/center、realise/realize、travelled/traveled、grey/gray)、连字符和空格(ice-cream / ice cream) |
--retrain |
另外生成错词重练卷 |
--per-student |
重练卷每个学生一份,只含他自己的错词 |
--min-wrong 3 |
全班重练卷只收 3 人以上写错的词 |
--types |
重练卷题型,默认看中文写英文 + 首字母填空 |
--top 20 |
高频错词列前几个 |
plan 选项:--per-day 10(每天新学几个)、--start 2026-10-08(默认明天)、--intervals 1,2,4,7,15(学完后第几天复习)、--rest 周末 或 --rest 周六,周日(休息日不排,顺延)。
大白话 → 怎么做
| 用户说 | 怎么做 |
|---|---|
| 「帮我看看这个单词表」 | check 单词表,把读到的词数和问题念给用户 |
| 「出一张默写纸,看中文写英文」 | paper 单词表 --types 看中文写英文 |
| 「出一套练习卷,题型丰富点」 | paper 单词表(全部题型,每个词出一次) |
| 「中译英、英译中都要,每个词都考」 | paper 单词表 --types 看中文写英文,看英文写中文 --each |
| 「出 AB 卷,防止抄」 | 加 --ab |
| 「只考第三单元」「随机抽 20 个」 | 加 --unit 3 / --count 20 |
| 「不要打乱,按顺序」 | 加 --no-shuffle |
| 用户直接粘贴了一串单词 | 先 check --text "…" 确认读对了,再 paper --text "…" |
| 「我想把学生默写的结果统计一下」 | 先 template 单词表 --students 名单 生成录入表,告诉老师怎么填(每格照抄学生写的,或只打 √ ×,没写就空着);填好后 grade 单词表 --answers 录入表 |
| 「color 和 colour 都算对」 | grade 加 --variants |
| 「把错得多的词再出一张卷」 | grade … --retrain;只要 3 人以上错的加 --min-wrong 3 |
| 「每个学生按自己的错词出一份」 | grade … --retrain --per-student |
| 「帮孩子排个背单词计划,每天 15 个,周末休息」 | plan 单词表 --per-day 15 --rest 周末 |
| 「复习间隔改成 1、3、7、14 天」 | 加 --intervals 1,3,7,14 |
| 「帮我把这些单词的中文补上」 | 不补。说明这个技能不翻译、不查词典,请老师按教材填好中文再给我 |
生成的文件里有什么
- 练习卷(Word):标题、姓名/班级/日期/得分栏;按「看中文写英文 → 看英文写中文 → 首字母填空 → 字母乱序 → 例句填空 → 连线」排;每题有横线;连线题每组最多 8 个,右边中文打乱。最后一页参考答案。会告诉用户卷子编号,下次报编号能出一模一样的卷子。
- 默写录入表(Excel):第一列姓名,每列一个单词(表头带中文方便对照),附填写说明页。
- 批改统计(Excel):说明(比对规则、全体正确率、缺考名单)、单词正确率(对/错/没写/待确认/常见错误写法/写错的学生,低于 60% 标红)、高频错词、学生错词清单(标准写法和学生写的对照)、批改明细。
- 错词重练卷(Word):全班一份或每人一份,带答案。
- 复习计划(Excel):每日清单(今天新学哪组、复习哪几组、共几个词、打勾栏)、每日单词、分组表、单词明细(每个词的学习日和每次复习日期)、说明。
比对规则
- 默认:忽略大小写、首尾空格、全角字母、弯引号,中间多个空格算一个,末尾句点不算。
- 打 √ / 对 算对,打 × / 错 算错,空着算没写(计入错);整行都空的学生当缺考,不参与统计。
- 学生写的是中文:和单词表的中文释义完全一致(多个意思对上任意一个)算对;只对上一部分(如「快乐」对「快乐的」)标「待确认」,不计入正确率,请老师判断。
- 打开「容忍拼写变体」后,才把英美拼写和连字符/空格写法算对;其它拼错一律算错。
需要的组件
- 必须:Python 3.8+;python-docx(生成 Word 练习卷);openpyxl(读写 Excel)。缺了脚本会提示
pip install python-docx/pip install openpyxl,不会自动安装。只用 CSV 或粘贴的单词出卷时不需要 openpyxl。
不做什么
- 不内置、不下载任何教材词表;不翻译、不查词典、不补中文释义。
- 不联网、不上传,全部在本机处理。
- 不修改、不覆盖、不删除用户的任何文件;不写回原表。
- 不做学生排名,不把学生错词信息发给任何人。
- 不读老版本 .xls 和 WPS 的 .et(请另存为 .xlsx);不破解有密码的文件。
- 不自动安装组件,不常驻后台,不建计划任务。