【问题标题】:python convert microsoft office docs to plain text on linuxpython在linux上将microsoft office docs转换为纯文本
【发布时间】:2009-03-26 12:24:44
【问题描述】:

关于在 linux 上使用 python 将 .doc、.ppt 和 .xls 转换为纯文本的方法有什么建议吗?真的任何转换方法都是有用的。我已经研究过使用 Open Office,但我想要一个不需要安装 Open Office 的解决方案。

【问题讨论】:

  • 我使用了命令行解决方案

标签: python linux ms-office


【解决方案1】:

我会选择命令行解决方案(然后使用 Python subprocess module 从 Python 运行工具)。

可以在此处找到 msword (catdoc)、excel (xls2csv) 和 ppt (catppt) 的转换器(以源形式): http://vitus.wagner.pp.ru/software/catdoc/.

无法真正评论 catppt 的用处,但 catdoc 和 xls2csv 效果很好!

但请务必先搜索您的发行版存储库...在 ubuntu 上,例如 catdoc 只是一个快速的 apt-get away。

【讨论】:

  • +1 表示不使用开放式办公格式,就像 OP 想要的那样。
【解决方案2】:

【讨论】:

    【解决方案3】:

    将 Microsoft Office 文档转换为 HTML 或其他格式的常用工具是 mswordview,此后已重命名为 vwWare

    如果您正在寻找命令行工具,他们实际上建议使用 AbiWord 来执行转换:

    AbiWord --to=txt
    

    如果您正在寻找图书馆,请从 wvWare overview page 开始。他们还维护a list of libraries and tools which read MS Office documents

    【讨论】:

      【解决方案4】:

      在命令行中,antiwordwv 可以很好地处理 .doc 文件。 (不是 Python 解决方案,但它们易于安装且速度很快。)

      【讨论】:

        【解决方案5】:

        同样的问题。下面是我使用 catdoc 将 dir 'docs/' 中的所有 doc 文件转换为 dir 'txts/' 的简单脚本。希望它会帮助某人:

        #!/usr/bin/env python 
        # -*- coding: utf-8 -*-
        
        import glob, re, os
        f = glob.glob('docs/*.doc') + glob.glob('docs/*.DOC')
        
        outDir = 'txts'
        if not os.path.exists(outDir):
            os.makedirs(outDir)
        for i in f:
            os.system("catdoc -w '%s' > '%s'" %
                      (i, outDir + '/' + re.sub(r'.*/([^.]+)\.doc', r'\1.txt', i,
                                           flags=re.IGNORECASE)))
        

        【讨论】:

        • 哈哈...+1 使用 python...使用 bash。坚持OP的要求做得很好……有点。 :D
        • @Droogans:他他这些多国语言速写真是讽刺。我已经开始在 bash 中做,更改输出文件名的规则变得很奇怪,然后我只是将它放在 python 脚本中。比使用子进程模块、管道等更容易。
        【解决方案6】:

        对于处理 Excel 电子表格 xlwt 很好。但它对.doc.ppt 文件没有帮助。

        (您可能还听说过 PyExcelerator。xlwt 是它的一个分支,并且维护得更好,所以我认为您最好使用 xlwt。)

        【讨论】:

          【解决方案7】:

          过去,我在使用 XSLT 将基于 XML 的办公文件处理成可用的东西方面取得了一些成功。它不一定是基于 python 的解决方案,但它确实完成了工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-03-21
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多