Python读取.rtf文件时添加无意义字符?

1 投票
2 回答
3037 浏览
提问于 2025-04-15 15:00

我有一个 .rtf 文件,里面只包含一个整数,比如说 15。我想用 Python 读取这个整数,并对它进行一些操作。但是,似乎 Python 读取这个 .rtf 文件的时候,获取了很多和 .rtf 文件相关的元数据。为什么会这样呢?我该怎么避免这种情况呢?比如,尝试读取这个文件时,我得到了以下内容:

{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf460 {\fonttbl\f0\fswiss\fcharset0 Helvetica;} {\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 个回答

4

这正是RTF文件里包含的内容,所以Python在没有其他指示的情况下,就直接给你文件里的内容。

你可能需要找一个库来读取RTF文件的内容,比如pyrtf-ng

4

.RTF(富文本文件)的特点就是它包含了额外的数据,用来定义文本的布局和格式。

不建议把数据存储在这种文件里,因为你可能会遇到你提到的那些麻烦。如果你花时间去解析这个文件,试图“恢复”你那个数字值,你的应用可能会面临RTF格式更新的风险,这样一来,解析的逻辑可能就会部分失效,从而导致应用得到错误的数字数据。

为什么不把这些信息存储在一个真正的文本文件里呢?可以用简单的文本文件,或者更好的是用XML、YAML、JSON等格式,这样可以确保你的应用在将来添加额外参数时也能兼容。

不过,如果这个文件是必须的,可能会有Python库可以用来读取和写入它。你可以去Python包索引(PyPI)查找关于RTF的相关信息。

撰写回答