将.RTF文件导入Python

时间:2018-01-22 18:55:27

标签: python-3.x python-import rtf

import sys
import os.path

from pyth.plugins.rtf15.reader import Rtf15Reader
from pyth.plugins.xhtml.writer import XHTMLWriter


if len(sys.argv) > 1:
    filename = sys.argv[1]
else:
    filename = os.path.normpath(os.path.join(
        os.path.dirname(__file__), 
        'HW1_TRPL_Stranks.rtf'))

doc = Rtf15Reader.read(open(filename, "r"))

print(XHTMLWriter.write(doc, pretty=True).read())

任何人都知道如何将.rtf文件导入python?我正在尝试堆栈中的东西,但它不起作用。

更新:我安装了pyth模块,它一直告诉我找不到模块 This is the error I got

2 个答案:

答案 0 :(得分:0)

pyth没有python 3支持,如here所述,但有人做了一个分叉here

答案 1 :(得分:0)

从围绕stackoverflow提出的几个选项中,我认为最可靠的方法是使用命令行LibreOffice。

shell中的命令应通过:

soffice --headless --convert-to html file.rtf

如果您想转换为html而不是宽松的格式。 txt也可以。

在Python3.6中,您将拥有

from subprocess import call
call(["soffice", "--headless", "--convert-to", "html", "file.rtf"])

然后将文件读取到变量:

with open('file.html', 'r') as myfile: 
   data=myfile.read().replace('\n', '')

重要说明:如果打开了任何LibreOffice实例,则此方法将无效。因此,在运行它之前,请关闭所有LibreOffice文件。