python自动生成word版本试卷_Python解决问题:生成包含加减练习题的Word文件
简 介
这里 小朋友假期作业有一项是每天做50道题的口算。之前的题目做完了,网上看到的习题集又木有合适的,再不然就是电子版本无法下载的,心想还是自己动手丰衣足食吧。
01 重点和难点
1F
安装docx模块
docx模块封装可以操作Microsoft Word文件所需要的工具。似乎该模块只可以在Windows环境下使用,而不可以在Mac OS环境下使用。安装该模块很简单。只需要在命令行模式下执行如下命令:
pipinstallpython-docx
网站:http://python-docx.readthedocs.io/en/latest/user/install.html#install
2F
分清几个概念
要想使用docx模块,需要分清word文件的组织结构。docx模块中document对象对应于word文件,paragraph对象对应于word文件中段落,run对象对应于段落中的一段一段文字。此外,和word文件中段落属于同一个级别的还有表格table对象。
02 程序代码
这段程序代码生成了一个包含25页计算题的word文件,每一页计算题包括100道加减题目。具体的看代码,里面有注释。
注:把文件拷贝到pycharm编辑器或者其他编辑器中,代码会变得容易读一些。
#!/usr/bin/python3# -*- coding: utf-8 -*-import docximport randomfrom docx.enum.textimport WD_PARAGRAPH_ALIGNMENTfrom docx.sharedimport *from docx.oxml.nsimport qn'''#docx模块官方网站,可查询模块和函数用法http://python-docx.readthedocs.io/en/latest/'''#定义生成的页数NUMOFPAGE=25#生成一个word对象filefile=docx.Document()#设置页面的左右边界for sectionin file.sections: section.left_margin=Inches(0.8) section.right_margin = Inches(0.8)#k循环用于产生对应页数for kin range(NUMOFPAGE):#增加每一页的标题 para = file.add_paragraph() run = para.add_run("100题tt日期:tt错题数:tt")#下面两行用于设置字体和字号 run.font.name =u"宋体" run._element.rPr.rFonts.set(qn('w:eastAsia'), u"宋体") run.font.size = Pt(15) para.alignment = WD_PARAGRAPH_ALIGNMENT.RIGHT#生成一个20行*5列的表格,每一个单元格中放一个问题等式。表格的作用主要用于排版 table = file.add_table(rows=20, cols=5) table.style.font.name ="Arial" table.style.font.size = Pt(12)for iin range(20):for jin range(5):#随机生成一个等式,在这里借用了第一个数op1来决定加减符号 op1=int(random.randint(1,99)) op2=int(random.randint(1,99)) op="+" if op1%2==0 else "-" if op=="+": run=table.cell(i,j).paragraphs[0].add_run(str(op1)+op+str(op2)+"=") run.font.size=Pt(14) table.cell(i,j).paragraphs[0].alignment=WD_PARAGRAPH_ALIGNMENT.LEFTelse:if op1>op2: run = table.cell(i, j).paragraphs[0].add_run(str(op1) + op +str(op2) +"=") run.font.size = Pt(14)else: run = table.cell(i, j).paragraphs[0].add_run(str(op2) + op +str(op1) +"=") run.font.size = Pt(14) file.add_page_break()#保存文件file.save("D:\math.docx")
生成的文件如下:
python自动生成word版本试卷_Python解决问题:生成包含加减练习题的Word文件相关推荐
- python建立题库随机抽题,用Python读取Excel题库随机组成Word版本试卷
Excel题目类型有单选.多选.判断,其中多选题最多包含6个选项,判断题只有两个选项(A:正确,B:错误) 此程序将随机抽取单选题20题,多选题10题,判断题20题,组成一张试卷. 运行程序后,将得到 ...
- python 自动补全函数括号_Python学习笔记(二)
1.0 Python是一种怎样的语言 Python是一门跨平台.开源.免费的解释型高级动态编程语言,支持伪编译将Python源程序转换为字节码来优化程序和提高运行速度,支持使用py2exe.pyins ...
- 用python画颗爱心祝生日快乐_Python 一键生成漂亮的生日快乐词云!
前段时间写了几篇关于生成词云的文章,其中包括: 等等,但是这几篇文章的转化对象都必须是多词汇组成的,也就是说他们生成词云的条件是词组必须够多,只有一两个词的话无法生成完整词云. 最近遇到许多朋友有特殊 ...
- python自动批量发邮件脚本_Python实现自动发送邮件功能
简单邮件传输协议(SMTP)是一种协议,用于在邮件服务器之间发送电子邮件和路由电子邮件.Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听器 ...
- python依据模板生成word文档_python自动化生成word文件,word格式套用创造模板
# coding=gbk from docx import Document # 导入docx模块 from docx.enum.text import WD_PARAGRAPH_ALIGNMENT ...
- python三方库打包项目中_python项目生成及导入依赖的第三方库
mac下的应用程序发布 及 打包(Python写的脚本,可打包第三方库) 其实这个问题在网上能搜到大把的解决方案.大家的统一答案都是 otool -L yourapp.app/Contents/Mac ...
- 如何用python生成可执行程序必须经过_python怎么生成可执行文件
.py文件:对于开源项目或62616964757a686964616fe58685e5aeb931333363393664者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的 ...
- python自动刷抖音视频_python+adb实现自动刷抖音视频
安装adb和驱动 python代码实现 效果展现 安装adb和驱动 adb下载链接:https://pan.baidu.com/s/1nvhgoOMzPkxqhzLjfkuaTQ 提取码:23a7 a ...
- python自动点击网页按钮_Python+Selenium使用(二)- 自动点击下一页
继续上一篇: 橘猫吃不胖:Python+Selenium使用(一)zhuanlan.zhihu.com 上一篇,获取了百度搜索后的结果页面,但是搜索结果又很多页,这里就获取下一页按钮,并点击它. 现 ...
最新文章
- 不要让中国孩子买的玩具都变成外国货!
- [luoguP1640] [SCOI2010]连续攻击游戏(二分图最大匹配)
- 21丨容器化守护进程的意义:DaemonSet
- leetcode 617. Merge Two Binary Trees | 617. 合并二叉树(Java)
- 2019.01.26【NOIP普及组】模拟赛C组总结
- 这款神秘的移动端OCR引擎,如何做到“所见即所得”?
- 19软件班专业英语学期总结
- 第三章EF的基本使用 EF添加数据实体模型
- 在XML drawable中引用自定义颜色
- php.ini 设置内存,php.ini怎么进行内存设置
- 如何用html制作彩虹,使用transform和arc方法,怎么绘制彩虹效果。
- 制作网页头部用html,HTML网页头部代码实例详解_HTML/Xhtml_网页制作
- 旅游产品分析:要出发周边游
- python七巧板拼图代码_为什么代码都是用英文来写的,将来会有用中文写代码的那天吗?...
- nodepad++之jsonviewer插件
- 提高网络营销的转化只需掌握这四步
- SLA,SLO和SLI工程师指南
- html video标签canplay,HTML oncanplay事件用法及代码示例
- linux工作中软件运行安装常见问题
- 2022年商标注册需要多长时间?
热门文章
- 单片机串口发送数据很慢?这种方法帮助你提高!
- 【第三期】那些设计漂亮、有创意的电路板!
- 光谱分析软件_利用Tracker软件分析太阳光谱中辐射强度与波长的关系
- android复位机器人图片,安卓(Android)新图标!小绿机器人换脸啦
- 搞怪的html代码,这个恶搞网页代码是肿么写出来的?
- vue 声明周期函数_Vue_生命周期函数
- html去除分页符,Word如何取消分页符
- python求和函数1到100_Python定义函数实现累计求和操作
- 牛客网Java刷题知识点之插入排序(直接插入排序和希尔排序)、选择排序(直接选择排序和堆排序)、冒泡排序、快速排序、归并排序和基数排序(博主推荐)...
- 第二课 android项目结构