在Python中解析Word文档

1 投票
4 回答
12920 浏览
提问于 2025-04-17 09:03

我想把一个Word文档转换成文本,所以我用了一个脚本。

import win32com.client 

app = win32com.client.Dispatch('Word.Application') 
doc = app.Documents.Open(r'C:\Users\SBYSMR10\Desktop\New folder (2)\GENERAL DATA.doc') 
content=doc.Content.Text
app.Quit()
print content

我得到了以下结果:

enter image description here

现在我想把这个文本转换成一个包含所有项目的列表。我用了

content = " ".join(content.replace(u"\xa0", " ").strip().split())

编辑

当我这么做的时候,我得到了:

enter image description here

这不是一个列表。问题出在哪里?那个大圆点是什么?

4 个回答

0

查看这个链接里的帖子和评论: 将Word文档转换为文本(Python示例)

还有这个帖子也可能对你有帮助: 在Linux上用Python将Microsoft Office文档转换为纯文本

0

现在我想把这段文字转换成一个包含所有项目的列表。我使用了

content = " ".join(content.replace(u"\xa0", " ").strip().split())

但它不是一个列表。问题出在哪里呢?

这里提到的 .join 方法 总是返回一个字符串。它需要你传入一个列表,然后会用你指定的分隔符(在这个例子中是空格)把这个列表里的内容连接起来。

除此之外,Aaron Digulla 说的也是对的。

9

Word文档并不是简单的文本,它们是包含了控制信息(比如格式设置)和文本内容的文件。如果你忽略了这些控制信息,文本内容就没什么用处了。

所以,你需要深入了解文档的控制结构,才能找到你感兴趣的文本,然后提取出这些文本内容。

注意:你会发现Word的结构非常复杂。如果可以的话,也可以考虑以下两种方法:

  • 从Word内部将文档保存为HTML格式。虽然会失去一些格式,但列表会保持完整。HTML比Word简单得多,更容易解析和理解。

  • 将文档保存为OOXML格式(至少从Office 10开始就有,扩展名是.docx)。这实际上是一个包含XML文档的ZIP压缩包。XML比完整的Word文档更容易解析和理解,但比HTML要复杂一些。

撰写回答