是否有将RTF转换为纯文本的Python模块?
我希望能找到一个模块或库,它安装的时候不需要超级用户权限;因为在我的工作环境中,我的权限有限。
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,由微软提供。
祝你好运(在你工作环境中权限有限的情况下)。