从.txt文件中删除ASCII编码的二进制blob

时间:2014-11-05 07:30:35

标签: python parsing ascii

我想解析10-K文件(公司的财务报表)。可以找到Apple的示例here(查找.txt文件)。现在,我正在阅读有关如何解析这些文件的research paper(请参阅第30-31页)。第一步被描述为删除所有ASCII编码段...这就是我想要弄清楚如何删除它们。

我在StackOverflow上看到了关于如何删除非ASCII代码的几个问题,但这是不同的。 ASCII编码的段包括:<TYPE>GRAPHICZIPEXCEL的{​​{1}}个标记的所有文档细分 - 我想删除它们。

因此,如果我按如下方式加载txt文件:

PDF

如何从此txt文件中删除所有ASCII编码段?要删除HTML标记,我使用过程here,但是ASCII编码段呢?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您处理的格式与SEC EDGAR流程有某种关联。

我没有花时间正式查阅。也许你应该。

通过检查您链接到的Apple语句,看起来您想要用正字符串替换与正则表达式<DOCUMENT>\s*<TYPE>(?:GRAPHIC|ZIP|EXCEL|PDF).*?</DOCUMENT>匹配的任何内容。

免责声明:正确的实施方法是使用XML解析器并提取您想要的元素,而不是试图在词汇上删除您不想要的内容。这在lxml中应该不会很难。

我首先认为这是XBLR,但事实并非如此。尝试使用ETree解析它会引发异常,因为某些元素(包括<TYPE>)的关闭标记似乎是可选的。最好的方法是找出这是什么格式(EDGAR site有几个规格;其中一个,也许?)并找到一个合适的DTD,然后从那里继续。

完成整理后,您希望了解如何remove elements with XPathhow to use regex in (lxml) XPath。然后可能重新实现使用XML和XPath完成的其他提取。