【发布时间】:2015-06-07 13:10:44
【问题描述】:
我正在处理一个巨大的富文本文件,其中每个条目都以粗体标题开头。将富文本文件导入 Python 并让它在看到粗体文本的任何地方拆分行会非常有帮助。但是,我找不到导入非纯文本的方法,并求助于寻找其他方法来查找粗体文本的开始位置。
有没有办法让 Python 读取粗体文本的位置?
【问题讨论】:
标签: python string rtf richtext
我正在处理一个巨大的富文本文件,其中每个条目都以粗体标题开头。将富文本文件导入 Python 并让它在看到粗体文本的任何地方拆分行会非常有帮助。但是,我找不到导入非纯文本的方法,并求助于寻找其他方法来查找粗体文本的开始位置。
有没有办法让 Python 读取粗体文本的位置?
【问题讨论】:
标签: python string rtf richtext
不,不容易。当然不在 StackOverflow 答案的范围内。
问题在于 RTF 是一种专有格式,具有描述该格式的特殊“语法”。
有些库会尝试读取它,如下所述:Is there a Python module for converting RTF to plain text?
但是,即使其中一个会为您阅读文本,也不太可能告诉您格式。毕竟,它会如何告诉你?
您最好的选择可能是找到一个 RTF 到 HTML 转换器(在我指出的问题中至少提到了一个),然后使用 BeautifulSoup 来查找加粗的 HTML 元素。
【讨论】:
根据Wikipedia...
{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
This is some {\b bold} text.\par
}
如果你想拆分成新的行,我想你可以做.replace('{\\b ', '\n') 并且大部分时间都在那里。如果您还想删除另一个 },请切换到正则表达式替换
【讨论】:
This is some \b bold\b0 text. 的形式,因此根据生成此特定 rtf 的内容,您可能会错过部分或全部粗体标题。