假设您在Windows上并安装了Word,您可以使用COM在python中控制Word - 请参阅 Python for win32 在Linux上,您可以使用OpenOffice执行相同的操作。
或者,对于win32或Linux,有一堆字符串提取器用于Word,然后您可以使用普通的python正则表达式工具。
看到这个问题 从python中的MS word文件中提取文本
我知道这是一个Python问题,但......
在Windows上,您应该使用VBScript(VBA宏)和OLE来以编程方式访问Word。
例子 | 入门指南 | 使用OLE自动化Word
在MacOSX上,您将VBA用于旧版本,AppleScript用于Office 2008。
文章
使用VBA,您可以选择就地修改文档或执行自动“另存为”以便以更易于处理的格式获取数据(但要警告其HTML导出非常糟糕)。
我强烈建议远离第三方库/产品,即使您不喜欢vbscript。格式过于复杂,没有文档记录,并且不准确,无法进行准确的外部处理。 StarOffice / OpenOffice证明了这一点。他们多年来一直在尝试,但仍然没有准确的.doc解析,更不用说.docx了。是的,它一般有效,但是一旦你开始尝试在Word之外进行程序化修改,你就会产生无法量化的文件损坏风险。您应该能够使用os.system从Python调用VBscript。我认为解释器是wscript.exe,但不要容忍我。这可能有用:
os.system('start script.vb')
首先,从本机Word中获取它( .doc )格式。
.doc
执行“另存为XML”并坚持让用户使用该文件而不是 .doc 文件。他们几乎没有注意到差异 - 除了文件更大。
使用 LXML 要么 元素树 解析XML并找到标题,部分,段落和列表。
在进行分析之前,您还可以执行“另存为HTML”。这与XML版本一样有效。但是,对于用户而言,HTML版本并不容易,因此在进行分析之前,请执行此操作。
使用 美丽的汤 解析HTML并找到标题,部分,段落和列表。
拥有解析结构(XML或HTML)后,您可以分析文档以查找特定标记。
运用 用于Office的Visual Studio工具(VSTO) ,有可能编写脚本 Word 从任何 .NET 语言。该 如何:在文档中搜索文本 示例显示 C# 和 Visual Basic 代码,但是 IronPython 也可以打电话 .NET 方法。
Word
.NET
C#
Visual Basic
IronPython
如果你准备好使用 IronPython的 (没有Mac等价物),这可能是Windows特定的内部搜索解决方案 Word 文档。
如果你有一点现金,你可以买 Aspose.Word s Java API。有了它,您可以以编程方式访问和操作任何Word文档