请告诉我如何 在 python3 中打开 odt、doc、docx、rtf 等办公文件并从中获取数据。至少很奇怪。
事实上,odt 和 docx 本质上是众所周知的档案,理论上您可以解压它们并查看 content.xml 文件(如果我没记错的话),但可能有更现代或更方便的方法。
我发现的只是创建 ods 表。
我找到了模块uno、pyoo 并且到处都描述了如何创建表,但我没有找到如何从 office 文档中获取数据。
任务是遍历目录(子目录)中存在的所有文件,查找或分析您需要的内容并将结果输出到单独的文件。
现在这是在 bash 中部分实现的,我想在 python3 中重写所有内容。
告诉我或演示如何搜索。
好吧,随便几个库:
当然,通过OpenOffice的服务来工作是一种比较正确的武士方式,但这至少需要一个“无头”的OpenOffice,但不一定可用。此外,在我看来,OpenOffice 服务在处理大量文件时的性能会令人失望,但您将获得完整的功能。
顺便说一句,请记住,在使用 OpenOffice 时,您必须以 Java API 文档为指导,并使其适应 Python
我会将其格式化为答案,这样我就不会搜索评论,如果图坦卡蒙不介意,如果你不介意,那么将它添加到你的答案中,我会删除我的。
因此,问题是使用ezodf模块解决的(不是很多它的文档)。安装的时候,如果你同时有 2 和 3 版本的 python,请小心,对于第三个,我安装了 python3 setup.py install like this 。
为清楚起见,一个小代码示例
让我解释一下,我使用i.text 而不是i.plaintext()来捕捉几行具有None值的行(显然是一些服务数据,我不明白),只是plaintext()将空元素添加到列表中并在那一刻在我看来,通过文字 会更快,但我可以在早上重新考虑)
在这里list.extend(re.findall(r"[\w']+", i.text.lower())) - 我附加到现有列表列表或什至如此,从而扩展现有列表列表。我选择所有带有正则表达式的单词(文档中的每个单词都放入列表中),对它们应用小写字母,仅此而已。
所以这只是一部分,因此可能看起来不太好,还有很多可以添加的,但至少现在清楚了如何阅读文档。
感谢 图坦卡蒙的提示。