使用Python识别固定宽度文本

时间:2016-10-12 14:33:13

标签: python python-3.x pandas fixed-width

我提供了一个文本文件,其中包含许多固定宽度的表以及不属于任何表的附带文本。说我的文件如下所示:

  

以下是固定宽度表。本段包含下表中结果的一些描述或摘要。

     

[在此插入固定宽度表]

     

这是描述第二个固定宽度表中的内容的第二段。

     

[在此插入第二个固定宽度表]

     

这是描述第三张表的第三段。

     

[第三张表格]

     

...

理想情况下,我想将此文本文件解析为类似于元组列表的内容,其中每个元组都包含表的描述作为其第一个元素(因此字符串如"这是第三段描述的第三个表。"),以及一个包含实际表数据作为第二个元素的pandas数据框。

现在我已经知道pandas包有一个read_fwf,它可以智能地将固定宽度的文本解析成数据帧。但是,在我可以调用read_fwf之前,我必须首先将固定宽度表的内容与文本的其余部分分开。有什么方法可以让我轻松地使用python来确定我的固定宽度表的开始位置和结束位置?

描述表格的文字段落有许多不同的形式,所以我不能轻易地"将某些行标记为段落行而不是基于它们包含的单词表格行。此外,每个表和描述下一个表的文本的开头之间没有额外的换行符,因此我不能使用空行的存在来确定表结束的位置。相反,我必须实际查看文本的内容,看看文本是否是"固定宽度"。 (我想我可以找到彼此相邻的两个或多个空格的存在,以确定一条线是否可能是固定宽度,但这似乎是一个不完美的解决方案,因为纯文本可能包含两个或更多后续空格)。

0 个答案:

没有答案