【发布时间】:2016-05-03 18:11:14
【问题描述】:
我有一个二进制文件,我正在尝试从中提取字符串,而且我有很多时间这样做。 :(
我当前的策略是使用 Python 读取文件(使用以下函数之一:read()、readline() 或 readlines())。接下来,我逐行解析(逐个字符)并查找特殊字符 'ô',大多数情况下它直接跟随我想要的字符串!最后,我从记录所有我识别为“有效”的字符的特殊字符中向后解析。
在一天结束时,我想要前面的时间戳和该行中接下来的 3 个字符串。
结果:
在输入示例第 1 行中,“读取”函数不会读取整行(显示在输出图像中)。我相信这是因为该函数将二进制文件解释为 EOF 字符,然后停止读取。
在示例的第 2 行中,有时会出现“特殊字符”,但它不在我要提取的字符串之后。 :(
有没有更好的方法来解析这些数据?如果没有,有没有办法解决示例行 #1 中看到的问题?
当我将行打印为已读时输入数据和结果输出数据的示例。如您所见,使用readlines() 时,它不会读取整行
仅供参考,效率不一定重要。
【问题讨论】:
-
通过将您的代码发布为屏幕截图,您让我们更难为您提供帮助。
-
没有EOF字符这样的东西,EOF只是到达文件末尾的条件。
标签: python binary ascii non-ascii-characters fileparsing