赞
踩
在Microsoft Word中:
from docx import Document
source_path = "./test.docx"
docs = docx_Document(source_path)
基本没有一个python库能直接读取doc文档的,所以需要先把doc转化为docx文件,参考:【python】linux系统下doc转docx文件
import re
for paragraph in docs.paragraphs:
if paragraph and paragraph.text:
# 获取xml源码
xml = paragraph._p.xml
# 进行xml源码字符匹配
if xml.find('<w:outlineLvl') >= 0:
start_index = xml.find('<w:outlineLvl')
end_index = xml.find('>', start_index)
outlineLvl_value = xml[start_index:end_index+1]
outlineLvl_value = re.search("\d+", outlineLvl_value).group()
print(f"文本:{paragraph.text}-->大纲等级:{outlineLvl_value}")
原理:
1、docx.Document()读取文档后会按照文章段落划分成一段一段的。
2、然后我们再获取每个段落的xml源码,即:xml = paragraph._p.xml。
3、源码中的<w:outlineLvl w:val=“2”/>就表示这是个3级大纲(因为是从0开始)。
4、接下来就好办了,就用字符串匹配把这个值提取出来就行了。
原理和代码同上,只需要把outlineLvl
改成ilvl
即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。