python自动排版word文档,python给word排版
介绍
舍友从网上下载的word题库文档非常混乱,大部分天才手动改过。想起python是著名的自动化脚本,我在word上启动了python的盲操作。
分析要求
分析文档内容,只留题目和选项,题号必须从1开始。
写代码
安装pip python-docx模块
阅读word文档的内容(适用于。doc后缀,您必须将它们另存为。docx文件。)
从docx导入文档
#打开文件
src docx=document (src.docx )
#遍历所有段落
对于srcdocx中的p,段落:
打印(第6页)。
输出效果:
删除分析所需的内容:
1.需求:
一个
42.餐后血糖明显升高的二型糖尿病患者可选择以下药物之一(5.0分)
删除多余的数字行。
2.需求:
42.餐后血糖明显升高的二型糖尿病患者可选择以下药物之一(5.0分)
更正主题编号。
3.需求:
删除“表格下方”和“表格上方”
4.需求:
A、
阿卡波糖
选项合并成一行。
5.需求:
删除多余的空行。
写代码
本质上,实现是从源文档中检索字符,执行处理操作,然后将它们存储在目标文档中。
其中,对于元素1、3、5的实现,只需要判断提取的内容是否应该删除,否则不需要保存在目标文档中,实现了“间接删除”。
对于要求2的实现,通过观察可以看出,总有一个“.”序列号之后,所以只要得到它的坐标,删除之前错误的序列号,将正确的序列号插入到处理字符串中,最后保存在一个新的文档中。“搞定
4要求类似于要求2。只要找到“,”符号。如果进行类似的操作,就可以实现“双线合并”。
从docx导入文档
#确定字符串是否为数字
EFis_number:
尝试:
是浮动的
返回true
除了值错误:
传球
尝试:
导入统一数据
unicodedata.numeric(
返回true
除外(错误的类型,错误的值):
传球
返回false
#修复错误的主题编号
# src,源字符串nPos,序号结尾下标cnt,正确的序号
EFchangenum(src、nPos、cnt):
s=src[:0]src[NPO:]
str _ list=列表
str_list.insert(0,str ) CNT))
dst=。join(str_list)).
返回桌面
#源文档
src docx=document (src.docx )
#目标文档
outDocx=文档(
Idx=0 #扫描下标
length=len(srcdocx . paragraphs)#段落总数
Cnt=1 #导线测量数
总和=1 #校正总数
while(1):
如果idx=长度:
布莱克
src=src docx.paragraphs [ idx ]。文本
#满足要求1、3、5
If () src==表单底部)或(src==表单顶部)或(src== )或(is _ number (src)):
打印(f)正在修复总和误差(src))。)
计算总和=1 #次校正的总和
idx=idx 1
连续不断地
#满足要求2
nPos1=src.find( . )
如果nPos1!=-1 :
#找到带有序列号的行
Dst=变更编号(src,nPos1,cnt))。
打印(f)正在修复总和误差(src))。)
计算总和=1 #次校正的总和
Cnt=cnt 1 #在序列号后移动
Outdocx.add_paragraph(dest) #将新单词写入数据
#满足要求4
NPOS2=src.find(、)
如果nPos2!=-1 :
src2=src docx.paragraphs [ idx1]。文本
outdocx.add_paragraph(srcsrc2)))))))))))).
idx=idx 1
打印(f)正在纠正第{sum}个错误{src},{src2})。
计算总和=1 #次校正的总和
idx=idx 1
outdocx . save(out . docx)
打印(f)校正完成!总共{sum}个错误!)
执行效果:
最终效果
摘要
Python也是一个非常强大的工具,门槛低,容易上手。以后会学很多Python!如果我的博客能给你一些思路,会起到很大的作用!人生苦短,我用Python~
希望以上就是正文的全部内容,对大家的学习有所帮助。另外,希望大家能支持聚米学院。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。