【问题标题】:How can I count words in complex documents (.rtf, .doc, .odt, etc)?如何计算复杂文档(.rtf、.doc、.odt 等)中的单词?
【发布时间】:2011-01-16 10:41:41
【问题描述】:

我正在尝试编写一个 Python 函数,给定文档文件的路径,返回该文档中的单词数。使用 .txt 文件很容易做到这一点,并且有一些工具可以让我一起破解对一些更复杂的文档格式的支持,但我想要一个真正全面的解决方案。

查看 OpenOffice.org 的 py-uno 脚本接口和支持的格式列表,将文档加载到无头 OOo 中并调用其字数统计函数似乎是理想的选择。但是,我找不到任何超出基本文档生成的py-uno教程或示例代码,甚至我找到的代码sn-ps都已经过时了五年,不再起作用。

无论是否使用 OOo 和 Uno,我如何才能获得各种格式文档的可靠字数?

【问题讨论】:

    标签: python document openoffice.org word-count


    【解决方案1】:

    这可能不适合您,但如果是的话 - 您可以将文档上传到 Google Docs,然后以 .txt 格式导出。 Google 通常在转换方面做得很好。

    您可以在此处找到相关 API:http://code.google.com/intl/pl/apis/documents/docs/1.0/developers_guide_python.html

    查看登录、上传和导出部分。

    【讨论】:

      【解决方案2】:

      在无头 OOo 中加载文档 并调用它的word-count function

      PyODConverter 是最近 (11-2009) 使用 OOo 转换多种文件类型的脚本。查看脚本,它基本加载了所有 OOo 支持的文档。

      这就是您将 OOo 作为无头服务启动的方式:

      soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

      然后你只需要编写一个小的引导程序,在命令行上调用 OOo,运行你的脚本,然后关闭 OOo。


      【讨论】:

      • 我不知道我怎么没早点找到 PyODConverter。我实际上找到了 artofsolving.com 并从那里下载了一些代码,但无法使用它;相比之下,PyODConverter 非常易于阅读和使用。感谢您的链接!
      猜你喜欢
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多