从.rtf文件读取时python添加乱码?

时间:2009-10-12 05:36:41

标签: python file-io rtf

我有一个.rtf文件,只包含一个整数,比如说15.我希望通过python读取这个整数,并以某种方式操作该整数。但是,似乎python正在读取与.rtf文件相关的大部分元数据。这是为什么?我怎么能避免呢?例如,尝试读取此文件,我得到..

  

{\ RTF1 \ ANSI \ ansicpg1252 \ cocoartf949 \ cocoasubrtf460   {\ fonttbl \ F0 \ fswiss \ fcharset0   黑体;}   {\ colortbl; \ red255 \ green255 \ blue255;}   \ margl720 \ margr720 \ margb720 \ margt720 \ vieww9000 \ viewh8400 \ viewkind0   \ PARD \ tx566 \ tx1133 \ tx1700 \ tx2267 \ tx2834 \ tx3401 \ tx3968 \ tx4535 \ tx5102 \ tx5669 \ tx6236 \ tx6803 \ QL \ qnatural \ pardirnatural

2 个答案:

答案 0 :(得分:4)

这就是.RTF(即富文本文件)的本质,它们包含额外的数据来定义文本的布局和格式化。

不建议将数据存储在此类文件中,以免遇到您所指出的困难。您是否会努力解析此文件并“恢复”您的一个数值,您可能会使您的应用程序面临更新版本的RTF格式的风险,这可能导致解析逻辑部分不正确,从而产生错误的数字数据应用程序)。

为什么不将此信息存储在真实的文本文件中。这可以是平面文本文件,或者最好是XML,YAML,JSON文件,例如用于添加“向前”兼容性作为您的应用程序,您可以在文件中添加额外的参数等。

但是,如果此文件是给定的,则可能存在要读取和写入的Python库。检查Python Package Index (PyPI)是否有RTF关键字。

答案 1 :(得分:4)

这正是RTF文件所包含的内容,因此Python(在没有进一步指示的情况下)会为您提供文件所包含的内容。

您可能正在寻找一个库来阅读RTF文件的内容,例如pyrtf-ng