在日常生活里,不管是办公、学习还是制作邀请函、请柬、简历等等,我们都会使用一个软件Microsoft Office Word,Office Word是微软公司的一个收费文字处理应用程序,是最流行的文字处理程序之一,它功能强大,简学易懂,但同时也有一个缺点,当一个Word文档储存的内容特别庞大的时候,使用者想要批量判断自己所写的内容是否统一,格式是否正确,是非常困难,需要使用特别多的步骤,非常繁琐,但是今天python能够解决其中的困难,使其变得非常简便。
问题描述
既然通过python提取word文档内容,这里需要了解一个python第三方库---python-docx库,docx库的基本用法详细查看官方文档: https://python-docx.readthedocs.org/en/latest/
今天在这里将要学习到的便是如何判断标题格式是否正确的具体步骤。
python-docx库的下载(Windows):pip install python-docx
python-docx模块是处理word的利器,希望通过调用模块生成预定格式的文件,word本身自带的模板使用不太方便,而日常学习,工作中特别是针对毕业论文来说对文档格式要求非常高,小编在此就通过对python-docx中标题的格式判断学习,向大家分享。
解决方案
抓住运用的第三方库有以下:
Document - 负责打开以及建立word文档
os - 这个包抽象了平台的功能,并提供了相关python函数来导航、创 建、删除和修改文件和文件夹。
Pt - 负责word文档文字的大小磅数
具体代码如下:
import osfrom docx import Document #功能是打开文档from docx.shared import Pt #设置磅数#标题#1、一个文件夹的所有docx文档标题path_word = r'E:\论文' #文件包路径def findAllFile(base_path):#建立一个内置函数,检测文件包中的docx文档 for root,ds,fs in os.walk(base_path): for f in fs: if f.endswith('.docx'): fullname = os.path.join(root,f) yield fullnameall_word_files = findAllFile(path_word)#2、批量进行检测for f in all_word_files: doc = Document(f) import re #主要进行标题样式的读取 for p in doc.paragraphs: if re.match("^Heading \d+$", p.style.name): print(p.text) if p.paragraph_format.space_before != Pt(24): print('段后间距格式错误') else: print('段后间距格式正确') |
---|
运行效果:
1、文件包的建立
样例的建立
检测的结果
结语
本篇文章针对解决word各类标题的间距格式进行判断得到结果,刚接触python-docx,看了几天视频和文档内容,照猫画虎结果算是出来了,当然肯定还有更好的方法,后期继续研究标题大小,样式,颜色等等,做到流水线式的检测判断。