是否有将RTF转换为纯文本的Python模块?

40 投票
10 回答
61108 浏览
提问于 2025-04-15 13:54

我希望能找到一个模块或库,它安装的时候不需要超级用户权限;因为在我的工作环境中,我的权限有限。

10 个回答

4

如果你在使用 Mac 电脑,你可以通过命令行把一个 RTF 文件,比如 file.rtf,转换成 TXT 格式,方法如下:

textutil -convert txt file.rtf
51

我最近在开发一个叫做Pyth的库,它可以做很多事情:

http://pypi.python.org/pypi/pyth/

把一个RTF文件转换成纯文本大概是这样的:

from pyth.plugins.rtf15.reader import Rtf15Reader
from pyth.plugins.plaintext.writer import PlaintextWriter

doc = Rtf15Reader.read(open('sample.rtf'))

print PlaintextWriter.write(doc).getvalue()

Pyth还可以生成RTF文件,读取和写入XHTML,从Python标记生成文档,类似于Nevow的stan,并且对latex和pdf输出有一些有限的实验性支持。它的RTF支持非常强大,我们在生产环境中使用它来读取由不同版本的Word、OpenOffice、Mac TextEdit、EIOffice等生成的RTF文件。

7

OpenOffice有一个可以读取RTF格式文件的功能。你可以用Python来控制OpenOffice,更多信息请看这里

在Windows上,你也可以尝试用一种叫做“魔法com对象”的东西来读取任何看起来像微软二进制格式的文件。不过我不太推荐这样做。

其实,解析这些原始数据应该不会太难,这里有一个用.bat/QBasic写的例子

DocFrac是一个免费的开源工具,可以在RTF、HTML和文本之间转换。支持Windows、Linux、ActiveX和DLL平台。用Python把它封装起来应该也很简单。

RTF::TEXT::Converter - 这是一个用Perl写的扩展,可以把RTF转换成文本。(如果你在使用DocFrac时遇到问题,可以考虑这个)。

官方的富文本格式(RTF)规范,版本1.7,由微软提供。

祝你好运(在你工作环境中权限有限的情况下)。

撰写回答