我是python编码的新手,当我从一个文件打印出来时(只从.rtf尝试过(会遇到问题,因为它显示了所有文件属性。我已经尝试了多种方法来编写相同的东西,但输出总是相似的。代码和输出示例:
opener=open("file.rtf","r")
print(opener.read())
opener.close()
- 该文件仅包含以下内容:
Camila
员工
试试
- 但结果总是:
{rtf1ansiansicpg1252cocoartf1671cocoasubrtf600
{fonttblf0fswissfcharset0 Helvetica;}
{colortbl;red255green255blue255;}
{*expandedcolortbl;;}
margl1440margr1440vieww10800viewh8400viewkind0
pardtx720tx1440tx2160tx2880tx3600tx4320tx5040tx5760tx6480tx7200tx7920tx8640pardirnaturalpartightenfactor0
f0fs24 cf0 Camila
Employees
Try it}
帮助?如何阻止这种情况发生,或者我做错了什么?
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()
使用此包https://github.com/joshy/striprtf.
from striprtf.striprtf import rtf_to_text
rtf = "some rtf encoded string"
text = rtf_to_text(rtf)
print(text)