
Best way to extract text from a Word doc without using COM/automation?是否有一种合理的方法可以从不依赖COM自动化的Word文件中提取纯文本? (这是在非Windows平台上部署的Web应用程序的功能-在这种情况下是不可协商的。) Antiword似乎是一个合理的选择,但似乎已被放弃。 Python解决方案将是理想的选择,但似乎不可用。 (与从python中的MS Word文件中提取文本相同的答案) 使用我本周制作的Python本机docx模块。这是从文档中提取所有文本的方法:
请参阅Python DocX网站 100%Python,没有COM,没有.net,没有Java,没有使用正则表达式解析序列化的XML。 为此,我使用catdoc或反字词,无论给出的结果是最容易解析的。我将其嵌入到python函数中,因此在解析系统(以python编写)中易于使用。
到catdoc的-w开关关闭自动换行BTW。 如果您要做的只是从Word文件(.docx)中提取文本,则只能使用Python进行。就像Guy Starbuck编写的一样,您只需要解压缩文件,然后解析XML。受
使用OpenOffice API,Python和Andrew Pitonyak的出色在线宏书籍,我设法做到了这一点。 7.16.4节是开始的地方。 使它完全不需要屏幕即可工作的另一个技巧是使用Hidden属性:
否则,当您打开文档时,文档会在屏幕上滑动(可能在Web服务器控制台上)。 tika-python Apache Tika库的Python端口,根据文档,Apache tika支持从1500多种文件格式中提取文本。 注意:它也可以与pyinstaller配合使用 使用pip安装:
样品:
链接到官方GitHub 对于docx文件,请查看位于 的Python脚本docx2txt http://cobweb.ecn.purdue.edu/~kak/distMisc/docx2txt 用于从docx文档中提取纯文本。 Open Office有一个API 只要有人想用Java语言做,就可以使用Apache poi api。 extractor.getText()将从docx中提取平面文本。这是链接https://www.tutorialspoint.com/apache_poi_word/apache_poi_word_text_extraction.htm 老实说,不要使用" pip install tika ",它是为单用户(一个使用笔记本电脑工作的开发人员)而不是多用户(多个开发人员)开发的。 在命令行中使用Tika的小类TikaWrapper.py波纹管足以满足我们的需求。 您只需要使用JAVA_HOME路径和Tika jar路径实例化该类,仅此而已!它非常适合许多格式(例如PDF,DOCX,ODT,XLSX,PPT等)。
.doc和.odt的效果很好。 它在命令行上调用openoffice将文件转换为文本,然后可以将其简单地加载到python中。 (它似乎还有其他格式选项,尽管没有记录在案。) |