介绍
舍友从网上下载的word题库文档很乱,手动改了大半天才改了一点,想起python是大名鼎鼎的自动化脚本,于是乎开始了python对word的一顿瞎操作。
分析需求
对文档中的内容进行分析,只留下题目,选项,并且题号要从1开始。
编写代码
-
pip安装python-docx模块
-
读取word文档内容(如果是以.doc后缀的文件需另存为.docx文件!)
from docx import Document # 打开文件 srcdocx = Document('src.docx') # 遍历所有段落 for p in srcdocx.paragraphs: print(p.text)
输出效果:
-
分析所需要删除的内容:
需求1:
1
42.对餐后血糖显著升高的2型糖尿病者,可选用下列哪种药物(5.0分)删除多余数字行
需求2:
42.对餐后血糖显著升高的2型糖尿病者,可选用下列哪种药物(5.0分)
修改正确的题目序号需求3:
删除“窗体底端”“窗体顶端”需求4:
A、
阿卡波糖
选项合成一行需求5:
删除多余空白行 -
编写代码
本质上来讲,实现就是从源文档中取出一段文字进行处理操作,然后保存到目标文档。
其中,需求1,3,5的实现,只需要判断一下取出的内容是否是需要删除的内容,如果是,则不用保存到目标文档中,这样就实现了**“间接删除”**。
对于需求2的实现,通过观察我们不难发现,序号后面总有一个**". ",所以我们只需要获取到这个的坐标,把前面的错误序号删除,插入正确的序号到处理字符串,最后保存到新文档,这样就完成了“修正题目序号”**。
需求4的实现类似需求2,只需要找到 “、” 符号就行,然后进行类似操作,就能实现 “合并两行”。
from docx import Document # 判断字符串是否为数字