到了大班,幼儿开始前书写练习,为了让孩子们每天完成的材料包、美术作品能够快速找到作者,不遗失,老师们要求孩子在作业上留下学号或名字。
通过测试,我发现大八班的孩子都能够写出自己的学号(有镜像数字),能够判定物权归属。此外目前班级里有5位孩子能够写出全名,为了让其余的孩子也能通过书写,熟悉自己名字的外形结构并为小学书写名字做基础,常规的方法是一个个模板把名字全选替换,费时不费脑。
学过Python后,阿夏希望利用Python办公自动化的方法,批量生成幼儿练习名字用的描红纸。有效节省时间。如果孩子名字笔画多、复杂,也可以通过设置字号,把描红名字变大,便于幼儿画名字;或者参照描红本,把名字画在作业纸上……经过一周的时间,将各类网络代码的收集、补充、删减,阿夏终于做出 1.0版本的“名字描红本”代码。
工具:Visual Studio Code
打开路径:D:\test(代码和TXT文件都放在D:\test下,生成的文件也在D:\test)
步骤:
1.在D:\test下建py和TXT文件
2.‘’幼儿名单.txt‘’ 里面的内容:
3.‘’幼儿书写名字.py’ 里面贴以下内容:
import docx from docx import Document #用来建立一个word对象 from docx.shared import Pt,RGBColor#设置字体的颜色 from docx.oxml.ns import qn#设置字体 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT #设置对齐方式 from docx.shared import Pt #设置字体大小 #从guest.txt文件中读取一个客人列表 guests=open('幼儿名单.txt') guest_list=[] for guest in guests: if guest is not None: guest_list.append(guest.strip()) #生成邀请文档 for g in guest_list: doc=docx.Document() #新建word文档 for i in range(7): #反复打印6行 人工测算可以7行 paragraph1=doc.add_paragraph() paragraph1.paragraph_format.alignment=WD_PARAGRAPH_ALIGNMENT.LEFT#LEFT就是居左,可以替换成RIGHT右 CENTER居中 run=paragraph1.add_run(g+g) #向段落中追加文字 一行两个名字 run.bold=True #设置追加文字样式 设置 加粗 # run.font.italic=True #把字体改为斜体,这里不需要 run.font.size=Pt(46)#设置 字号大小 run.font.name = u"微软雅黑" #设置 字体名称 run._element.rPr.rFonts.set(qn('w:eastAsia'),'微软雅黑') #只设置中文字体 两段都要有 run.font.color.rgb=RGBColor(190,190,190) #颜色=灰色190,190,190,描红的底色要浅,打印机只能打印黑白,255,3,5=红色 # run.font.name='Arial' #只能设置英文名称 # paragraph1.paragraph_format.line_spacing=Pt(18) #行距 设置18 paragraph1.paragraph_format.line_spacing = 1 #行距 设置1倍 2倍 doc.save(g+'.docx')
4.运行‘幼儿书写名字.py’ 的代码
5.批量生成的幼儿描红纸A4
1.生成的幼儿描红纸word也是在D:\test下面
2.每份描红纸word的文件名和内部名字都不一样
28号张XX的名字描红纸
01号金XX的名字描红纸
参考红字说明,对应代码里的设置,进行段落、字体、颜色的简单修改。
3.打印及幼儿操作照片
所有作业的展示
产生的问题:幼儿书写中发现部分名字的笔画多,笔画挤在一起。幼儿用黑色记号笔画,容易把未书写笔画覆盖掉。
解决方案:所以我把个别“笔画较多+不能自主书写名字”的两个孩子的名字在代码里把字体变大,一行写一个名字(共6个大字)。便于幼儿描画灰色字,甚至照着画字。
感悟:
1、个性化学习:利用py办公自动化制作幼儿名字描红模板,可以根据不同孩子的能力特点,制作适合幼儿练习的名字描红贴(大号名字、中号名字、单个字)
2、废纸利用:由于一次批量28份,所以为了节约纸张,要用打印过的废纸的反面进行打印。现在办公室里打印过的废纸都归我了(哈哈哈)
3、代码的修改:虽然还没有用到,但是这些代码应该可以再修改,制作更多的模板,比如说,设计一个框,打好幼儿的名字,让幼儿在里面记录或者绘画。(设想,以后在教学中试试)