从Word文档中提取标题文本

发布于 2021-01-29 16:32:27

我试图text从MS Word文档(.docx文件)的标题(任何级别)中提取。目前,我正在尝试使用python-
docx
进行解决,但是不幸的是,在阅读它之后,我仍然无法弄清它是否可行(也许我弄错了)。

我尝试在线查找解决方案,但没有发现与我的任务相关的任何内容。如果有人可以在这里指导我,那就太好了。

关注者
0
被浏览
139
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    根本的挑战是确定标题段落。对于读者而言,没有什么能阻止作者将“常规”段落格式化为看起来(并充当)标题的方式。

    但是,对于作者来说,可靠地使用样式创建标题并不罕见,因为这样做可以将这些标题自动编译到目录中。

    在这种情况下,您可以遍历段落,然后选择标题样式之一的段落。

    def iter_headings(paragraphs):
        for paragraph in paragraphs:
            if paragraph.style.name.startswith('Heading'):
                yield paragraph
    
    for heading in iter_headings(document.paragraphs):
        print heading.text
    

    如果标题级别保留默认值(例如“标题1”,“标题2”等),则可以从样式的完整名称中进行解析。

    如果作者重命名了标题样式,则可能需要对此进行调整。

    有更复杂的方法更可靠(就样式名称而言是独立的),但是这些方法不支持API,因此您需要深入研究内部代码并直接与我期望的某些样式XML进行交互。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看