0

我是 python 编码的新手,当我从文件(仅从 .rtf 尝试过)打印时遇到问题,因为它显示了所有文件属性。我尝试了多种方法来编写相同的代码,但输出总是相似的。代码和输出示例:

opener=open("file.rtf","r")
print(opener.read())
opener.close()
  • 该文件仅包含以下内容:

卡米拉

员工

试试看

  • 但结果总是:
{\rtf1\ansi\ansicpg1252\cocoartf1671\cocoasubrtf600
{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
{\colortbl;\red255\green255\blue255;}
{\*\expandedcolortbl;;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\pardirnatural\partightenfactor0

\f0\fs24 \cf0 Camila\
\
Employees\
\
Try it}

帮助?如何阻止这种情况发生或我做错了什么?

4

2 回答 2

0

使用这个包https://github.com/joshy/striprtf

from striprtf.striprtf import rtf_to_text
rtf = "some rtf encoded string"
text = rtf_to_text(rtf)
print(text)
于 2020-12-17T22:04:49.623 回答
0

RTF 文件类型包含的信息不仅仅是文本,如字体等。Python 将 RTF 文件作为纯文本读取,因此包含此信息。如果你想得到纯文本,你需要一个可以翻译它的模块,比如striprtf

通过在命令行中运行以下命令确保已安装模块:

pip install striprtf

然后,获取您的文本:

from striprtf.striprtf import rtf_to_text
file = open("file.rtf", "r")
plaintext = rtf_to_text(file.read())
file.close()
于 2020-12-17T22:13:04.943 回答