我有一个二进制文件,上面有一些文字。 要搜索它,我会写一个好老的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
模块来搜索二进制文件中的模式?