python 从未知格式转换

python convert from unknown format

我正在使用 python 将 rtf 文件转换为纯文本。我正在使用 pyth 来转换它,但它最终变成了一种我无法识别的格式。

这是我的输入 python 脚本:

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

if len(sys.argv) > 1:
    filename = sys.argv[1]
else:
    filename = "C:\localdata\logbook.rtf"

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

y = [x.content for x in doc.content]
for j in y:
    print j

输出结果如下:

[Text('[AJAJ]' {})]
[Text('[07:30 - Setup IP address]' {})]
[Text('[copied DM Queue and recipies from AYT404]' {})]
[Text('[07:50 - Backed up system pre SP7]' {})]
[Text('[08:00 - Installing SP7]' {})]
[Text('[08:15 - Startup Drivers -> OK]' {})]

有谁知道这是什么格式,我怎样才能把它转换成更易读的格式?

编写一个简单的过滤器来获取您想要的内容可能会更容易。从您发布的示例来看,您似乎只需要删除前 8 个字符和后 7 个字符(如果我算对了的话)。所以而不是 print j 你有

print str(j)[8:-7]

你需要 str 的原因是对象是列表 y 显然不是字符串。我对这些模块不熟悉,所以我不能说它们是什么类型的对象,但它们的字符串表示就是我们看到的打印出来的。 (每个 python 对象都有某种字符串表示形式,这就是为什么您可以对任何对象调用 print 的原因。)因此,无论对象 j 实际上是什么类型,str(j) 都是它的字符串表示形式, 我们可以将其切片。