gpt4 book ai didi

python - 阅读 Word 文档并获取每个标题的文本

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:06 24 4
gpt4 key购买 nike

我有一个 Microsoft word 文档,我需要提取文本并将其按文档的每个部分构建到一个数据框中。文档的每个部分都以标题开头。标题在 Word 中的格式为“标题 2”。例如:

This is section one

This is the text for the first section.

This is the second section of the document

And this is the text for the second section.

我需要获取数据框中每个部分的文本,其中 A 列中有部分名称,B 列中有部分文本。

我是 Python 的新手,我正在尝试 docx 包,但我唯一能做的就是根据我在 stackoverflow 中找到的函数获取全文

函数(readDocx):

#! python3
from docx import Document

def getText(filename):
doc = Document(filename)
fullText = []
for para in doc.paragraphs:
fullText.append(para.text)
return '\n'.join(fullText)

获取文本的代码:

import readDocx

test = readDocx.getText('THE FILE.docx')

我能够找到这个标识标题的循环。问题是如何遍历文档并获取数据框中的每个标题和文本:

from docx import Document
from docx.shared import Inches


docs = Document("THE FILE.docx")

for paragraph in docs.paragraphs:
if paragraph.style.name=='Heading 2':
print (paragraph.text)

最佳答案

对于看起来像这样的 docx

enter image description here

这可能是一个起点:

from docx import Document
from docx.shared import Inches

document = Document("demo.docx")
headings = []
texts = []
for paragraph in document.paragraphs:
if paragraph.style.name == "Heading 2":
headings.append(paragraph.text)
elif paragraph.style.name == "Normal":
texts.append(paragraph.text)

for h, t in zip(headings, texts):
print(h, t)

输出:

Heading, level 2 A plain paragraph having some bold and some italic.
Heading, level 2 Foo
Heading, level 2 Bar

我不了解 Pandas,但从元组列表(由 zip 生成)到数据框应该很容易。

关于python - 阅读 Word 文档并获取每个标题的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51670198/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com