我想在python中使用grep搜索匹配行,要搜索的参数将由Argument解析器传递。 示例:
#!/usr/bin/env python
import argparse,sys,re
parser = argparse.ArgumentParser()
parser.add_argument('-e', dest='ArgumentList', action='append', default= [], help='List of arguments to be searched on the lists.', required=True)
parser.add_argument('-o', dest='OutputFile', action='store', default="", help='Save the search result to a file.')
args = parser.parse_args()
然后我创建一个函数来搜索文件中的参数。
def Grep():
try:
if args.OutputFile != "":
with open(args.OutputFile,"w") as Out:
for line in File:
OutputLine = re.findall(ARGS, line)
print ("[*]A match was found: " + OutputLine)
Out.write(print(OutputLine))
Out.close()
elif args.OutputFile == "":
for line in File:
OutputLine = re.findall(ARGS, line)
print ("[*]A match was found: " + OutputLine)
else:
print('[*]Error: An error ocurred. Check Ozint usage "Script.py -h" to more')
sys.exit(0)
File变量是要打开的文件。 现在,ARGS变量仅用于填充字段。因为这是问题所在。
要搜索的参数将存储在列表中。 示例:
script.py -e a -e b
args.Argumentlist = ['a', 'b']
但是我想搜索多个参数而不重新运行Grep()函数,而且我不知道如何更改函数以仅一次运行即可搜索许多参数(例如grep)。 我使用的是RE库。 如果有人能比“我的”更好地工作,那么我将接受新版本的grep函数。