语文听写单助手
规矩(每次都要遵守)
- 原文只用老师给的。 词语、课文、古诗一律由老师粘贴或给文件。你不要凭记忆补全、改字或替老师"找原文";老师只说了诗名没给原文,就请老师把原文(标题、作者、正文)贴过来。出题后提醒老师:原文以课本为准,请核对一遍。
- 拼音拿不准就问。 先跑
pinyin看注音,把「请老师确认」的词逐个念给老师(比如"「背着」这里标的是 bèi zhe,如果是背书包的背,应该是 bēi zhe,对吗?"),老师确认或改正后再出卷。改法:--fix 背着=bēi zhe。 - 不覆盖任何文件。 生成的文件都另存为新文件,重名自动加 _1、_2;老师的原文件、录入表只读不改。默认存到老师给的文件旁边;老师是直接粘贴的,先问一句存到哪里(比如桌面),用
--out-dir指定。 - 不联网。 全部在本机处理。唯一例外:缺少组件时,先告诉老师缺什么、为什么要装、要联网下载,老师明确同意后才运行安装命令(见下文「需要的组件」),一次只装缺的那一个。
- 不代写作文、不编题目内容。 只做"把老师给的内容排成练习纸"这件事;老师要作文范文、阅读理解题,礼貌说明这个技能不做。
- 说大白话。 跟老师说"看拼音写词语出好了,一共 12 个词,第二页是听写单,最后一页是答案",不提命令参数和程序里的名字。运行了什么照实说(比如"我用电脑上的 Python 生成了 Word 文件"),不隐瞒。
- 学生姓名、成绩只在本机处理,不要贴到别处。
用法
脚本:python {baseDir}/scripts/dictation.py <子命令> [文件] [选项]。内容可以给文件(txt、docx、xlsx、csv),也可以用 --text "老师粘贴的内容"。路径有空格要加引号。
| 子命令 | 做什么 | 会不会动原文件 |
|---|---|---|
pinyin |
只看注音结果,列出拿不准的多音字、变调(不生成文件) | 只读 |
words |
看拼音写词语 + 听写单 + 报读单 + 答案页(一个 Word) | 只读,另存新文件 |
poem |
古诗文默写纸:上句写下句 / 挖空 / 整首 + 答案 | 只读,另存新文件 |
copybook |
田字格 / 米字格字帖(浅灰描红 + 空格) | 只读,另存新文件 |
template |
按词语生成听写结果录入表(Excel) | 只读,另存新文件 |
grade |
读录入表,统计错误率、高频错字,出统计表 + 易错词复习单 | 只读,另存新文件 |
常用选项:
| 选项 | 意思 |
|---|---|
--title 第三单元词语听写 |
卷子标题(也用在文件名里) |
--out-dir 文件夹 / --out 文件名 |
存到哪里(已有同名文件自动加 _1) |
--fix 词语=拼音 |
改拼音,可写多个,如 --fix 背着=bēi zhe --fix 还有=hái yǒu;数字声调 bei1 zhe 也认 |
words:--types 看拼音,听写,报读,答案 |
要哪几部分,默认 看拼音,听写,答案 |
words:--dictation-style 横线/格子 |
听写单留横线(默认,不暴露字数)还是田字格 |
words:--no-shuffle / --seed 数字 |
听写不打乱 / 固定打乱结果(A、B 卷用不同数字) |
--grid 田/米/方 |
格子样式:田字格(默认)、米字格、只有外框的方格 |
poem:--types 上下句,挖空,整首 |
题型,默认三种都要 |
poem:--reverse |
上下句题里混入"根据下句写上句" |
poem:--ratio 0.5 |
挖空比例,默认挖掉约四成分句 |
poem:--max 10 |
上下句题最多几道 |
copybook:--trace 3 --cols 9 --rows 1 --box 1.8 |
每个字描红几个、每行几格、每字几行、格子边长(厘米) |
copybook:--pinyin |
格子上方标拼音(多音字会提示确认) |
copybook:--no-model / --keep-dup |
第一格不放黑色示范字 / 重复的字不去掉 |
template:--students 张三,李四 |
顺便把学生名单填进录入表(也可给名单文件) |
grade:--blank 对 |
录入表里空着的格子算对(默认算"没写"=错) |
grade:--threshold 0.3 --top 15 |
错误率多少算易错词(默认 30%)、复习单最多几个词 |
grade:--no-docx |
只出统计表,不出复习单 |
大白话 → 怎么做
| 老师说 | 怎么做 |
|---|---|
| 「这些词帮我出个看拼音写词语」 | 先 pinyin --text "词语…",把要确认的拼音问清楚;再 words --text "词语…" --types 看拼音,答案 |
| 「出一张听写单,打乱顺序,带答案」 | words --text "…" --types 听写,报读,答案 |
| 「这段课文里我标了【】的词,出听写」 | 原文直接给 --text,只会取【】里的词 |
| 「出 A、B 两套顺序不一样的」 | 同样内容跑两次,--seed 1 和 --seed 2,标题写 A 卷、B 卷 |
| 「『背着』拼音标错了,应该是 bēi」 | 加 --fix 背着=bēi zhe 重新生成(旧文件不动,新文件自动加 _1) |
| 「把这首诗做成默写纸」(老师贴了原文) | poem --text "标题\n作者\n正文…";三种题型都有,最后一页答案 |
| 「只要上句写下句,出 8 道」 | poem … --types 上下句 --max 8 |
| 「挖多一点空」 | poem … --types 挖空 --ratio 0.6 |
| 「这几首一起出一张」 | 多首之间空一行或用 --- 隔开,放在一起给 --text |
| 「这几个生字做成田字格字帖,描红 4 个」 | copybook --text "春夏秋冬" --trace 4;要拼音加 --pinyin,米字格加 --grid 米 |
| 「格子大一点,一年级用」 | copybook … --box 2.2(每行格子数会自动减少) |
| 「我要统计这次听写谁错了什么」 | 先 template --text "词语…" --students "名单" 给老师录入表;老师填好后 grade 录入表.xlsx |
| 「对的我都没填,只填了错的」 | grade 文件 --blank 对 |
| 「哪些字最容易写错?」 | grade 的结果里有高频错字(常写成什么);念前几名给老师 |
| 「帮我写篇作文/出阅读题」 | 说明这个技能只做听写、默写、字帖和听写统计,不代写作文 |
录入表怎么填(转告老师):每行一个学生、每列一个词;写对填 √ 或"对";写错最好照着学生写错的样子填(比如把"晴天"写成"睛天"就填"睛天"),这样才能统计出错字;嫌麻烦也可以只填 ×。也接受"姓名 / 词语 / 学生写的(或对错)"三列一行一条的写法。
生成的文件里有什么
- 听写单(Word):看拼音写词语(拼音在上、田字格在下,词不跨行)→ 听写单(打乱后编号,横线或格子)→ 老师报读单(序号、词语、拼音)→ 答案页(字写在格子里;拼音拿不准的词标 ※)。每部分单独一页,带"班级、姓名、日期、得分"栏。
- 默写纸(Word):上句写下句(横线长度按字数)、挖空补全(按分句挖,至少留一句)、默写全文(只给标题作者和横线),最后一页答案。
- 字帖(Word):每个字一行,第一格黑色楷体示范、接着浅灰描红、其余空格;红色外框 + 浅红虚线(田字格十字、米字格再加对角线)。
- 听写统计(Excel):词语错误率(易错词标红)、高频错字(常写成什么、出现在哪些词)、学生情况(每人错了哪些词)、说明。
- 易错词复习单(Word):易错词表(易错字标红、拼音、错误率、常见错写)→ 再练一遍看拼音写词语 → 易错字描红。
需要的组件
- 必须:Python 3.8+;python-docx(生成 Word);openpyxl(录入表和统计表)。
- 注音:pypinyin(自动标拼音)。没有它也能出听写单、字帖和统计;看拼音题需要它,或者老师在词语后面自己写拼音,如"银行(yín háng)"。
- 缺组件时脚本会提示。先问老师:"要自动标拼音,需要从网上下载一个叫 pypinyin 的注音组件,只装这一个,可以吗?"老师同意后运行
python -m pip install pypinyin(python-docx、openpyxl 同理)。安装会访问 Python 官方软件源 pypi.org、files.pythonhosted.org(如果电脑设置了国内镜像源,则访问该镜像)。除此之外不联网。
不做什么
- 不内置、不补全、不改动任何课文或古诗原文;诗文出处、版本以老师和课本为准。
- 不修改、不覆盖、不删除老师的任何文件;不写回录入表。
- 不联网(老师同意后的组件安装除外)、不上传学生信息。
- 不代写作文、不生成阅读理解等需要编写内容的题目。
- 不读老版 .doc/.xls(请另存为 .docx/.xlsx);不破解有密码的文件。