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

标签 python parsing ascii

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

我在 StackOverflow 上看到几个关于如何删除非 ASCII 代码的问题,但这是不同的。 ASCII 编码的段是: 所有带有 <TYPE> 的文档段标签 GRAPHIC , ZIP , EXCELPDF - 我想删除它们。

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

fil = open('F:\\file.txt','r')
x = fil.read()

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

最佳答案

如果我理解正确,您正在处理的格式在某种程度上与 SEC EDGAR 过程相关。

我还没有花时间正式查找它。也许你应该。

通过检查您链接到的 Apple 声明,您似乎想要替换与正则表达式 <DOCUMENT>\s*<TYPE>(?:GRAPHIC|ZIP|EXCEL|PDF).*?</DOCUMENT> 匹配的任何内容。带有一个空字符串。

免责声明:正确的实现将使用 XML 解析器并提取您想要的元素,而不是尝试按词法删除您不想要的元素。这在 lxml 中应该不难.

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

一旦你解决了这个问题,你想看看如何 remove elements with XPath也许how to use regex in ( lxml ) XPath 。然后可能会重新实现您已经使用 XML 和 XPath 完成的其他提取。

关于python - 从 .txt 文件中删除 ASCII 编码的二进制 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26751804/

相关文章:

python - Flask app config.py vs dotenv 访问环境变量

python+numpy : why does numpy. 日志操作数太大会抛出属性错误?

ios - 如何将来自一个 JSON 请求的数据用于第二个 JSON 请求?

c# - 带有 TextFieldParser 的 CSV 文本文件解析器 - MalformedLineException

postgresql - 我遇到无效的 UTF8 字节序列问题

python - 拼写检查等统计句子建议模型

python - Django 工作人员登录所有网址

C++ STL : a good way to parse a sensor response

python - Python 如何处理不可打印字符?

hash - 为什么 md5 和 sha-* 在其哈希结果中仅使用字母数字字符?