在二进制文件中搜索文本的Pythonic方式

时间:2016-10-24 22:55:02

标签: python regex python-3.x

我有一个二进制文件,上面有一些文字。 要搜索它,我会写一个好老的bash:

grep -a 'pattern' binaryfile

我希望使用re模块在​​Python中实现相同的功能。原因是我希望我的脚本可以在多个平台上运行。

读了一下之后,我写了一个小grep函数,它看起来像这样:

import re
def grep(pattern, binaryfile):
    regexobj = re.compile(pattern)
    for line in binaryfile:
        if regexobj.search(line):
                yield line

代码在普通文本文件上正常工作。

with open('pythoncode.py','r') as f:
    print(list(grep('import', f)))

但是如果我在二进制文件with open(binaryfile, 'rb')上尝试它,那么它会抛出以下错误:

  

TypeError:不能在类字节对象上使用字符串模式

在我开始深入探讨我的问题的各种临时解决方案之前...... 是否有一种简单的Pythonic方法来使用re模块来搜索二进制文件中的模式?

0 个答案:

没有答案