Python对word文档重排版

本文介绍了使用Python的python-docx模块对Word文档进行自动化处理,包括删除多余内容、重排题号和选项,以实现题库文档的整理。通过示例代码展示了如何删除特定行、合并选项行以及修正题目序号。
摘要由CSDN通过智能技术生成
介绍

舍友从网上下载的word题库文档很乱,手动改了大半天才改了一点,想起python是大名鼎鼎的自动化脚本,于是乎开始了python对word的一顿瞎操作。

分析需求

对文档中的内容进行分析,只留下题目,选项,并且题号要从1开始。

编写代码
  1. pip安装python-docx模块

  2. 读取word文档内容(如果是以.doc后缀的文件需另存为.docx文件!)

    from docx import Document
    
    # 打开文件
    srcdocx = Document('src.docx')
    # 遍历所有段落
    for p in srcdocx.paragraphs:
        print(p.text)
    

    输出效果:

  3. 分析所需要删除的内容:

    需求1:
    1
    42.对餐后血糖显著升高的2型糖尿病者,可选用下列哪种药物(5.0分)

    删除多余数字行

    需求2:
    42.对餐后血糖显著升高的2型糖尿病者,可选用下列哪种药物(5.0分)
    修改正确的题目序号

    需求3:
    删除“窗体底端”“窗体顶端”

    需求4:
    A、
    阿卡波糖
    选项合成一行

    需求5:
    删除多余空白行

  4. 编写代码

    本质上来讲,实现就是从源文档中取出一段文字进行处理操作,然后保存到目标文档。

    其中,需求1,3,5的实现,只需要判断一下取出的内容是否是需要删除的内容,如果是,则不用保存到目标文档中,这样就实现了**“间接删除”**。

    对于需求2的实现,通过观察我们不难发现,序号后面总有一个**". ",所以我们只需要获取到这个的坐标,把前面的错误序号删除,插入正确的序号到处理字符串,最后保存到新文档,这样就完成了“修正题目序号”**。

    需求4的实现类似需求2,只需要找到 “、” 符号就行,然后进行类似操作,就能实现 “合并两行”

    from docx import Document
    
    # 判断字符串是否为数字
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值