python-docx获取标题文本

时间:2018-01-15 11:23:07

标签: python docx python-docx

我想从Python中的docx文件中读取头文本。我正在使用python-docx模块。

如果此功能已经实施,有人可以帮助我这样做。

我试图这样做,但没有成功。

from docx import Document

document = Document(path)
section = document.sections[0]
print(section.text)

Error:
    <class 'AttributeError'>'Section' object has no attribute 'text'

from docx import Document

document = Document(path)
header = document.sections[0].header
print(header.text)

Error:
    <class 'AttributeError'>'Section' object has no attribute 'header'

2 个答案:

答案 0 :(得分:0)

在您提出问题时,使用python-docx库是不可能的。在0.8.8 release (January 7, 2019)中,添加了页眉/页脚支持。

在Word文档中,每个部分都有一个标题。标头有很多潜在的皱纹(例如,它们可以在不同的页之间链接,也可以在偶数/奇数页上不同),但是在简单的情况下,只有一个节和一个不复杂的标头,您只需要检查一下部分标题中的段落。

from docx import Document
document = Document(path_and_filename)
section = document.sections[0]
header = section.header
for paragraph in header.paragraphs:
    print(paragraph.text) # or whatever you have in mind

我正在处理一个文档,该文档的标题用表格而不是简单的文本布置。在这种情况下,您需要使用rows中的header.tables[0]而不是段落。

答案 1 :(得分:0)

这是从docx页眉和页脚中获取文本的另一种简单方法。

import docx2python as docx2python
from docx2python.iterators import iter_paragraphs

doc = docx2python('file.docx')
header_text = '\n\n'.join(iter_paragraphs(doc.header))
footer_text = '\n\n'.join(iter_paragraphs(doc.footer))

docx2python将提取页眉和页脚中的所有图像。在您的页眉和页脚文本中,这些将替换为----image1.png----