python从未知格式转换

时间:2015-10-09 00:54:27

标签: python 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]' {})]

有谁知道这是什么格式以及如何将其转换为更具可读性的内容?

1 个答案:

答案 0 :(得分:1)

编写一个简单的过滤器来获得你想要的东西可能更容易。从您发布的示例中,您似乎只需删除前8个字符和最后7个字符(如果我已正确计算)。所以不是print j而是

print str(j)[8:-7]

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