在Python中解析Word文档
我想把一个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
我得到了以下结果:
现在我想把这个文本转换成一个包含所有项目的列表。我用了
content = " ".join(content.replace(u"\xa0", " ").strip().split())
编辑
当我这么做的时候,我得到了:
这不是一个列表。问题出在哪里?那个大圆点是什么?
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要复杂一些。