我在使用 python 正则表达式搜索文件时遇到了一些麻烦。
我想输入一个正则表达式列表,并在一个锯齿状列表中返回与其中一个匹配的文件行,该列表的索引方式与 rexex 列表相同,即如果一行与第一个正则表达式匹配,它将被添加:results[0].append(line)
如果第二个匹配:results[1].append(line)
等等...
import re
def search(path, regex_list):
reg_list = [re.compile(regex) for regex in regex_list]
results = reg_list.__len__()*[[]]
with open(path, 'r') as fp:
for line in fp:
for i, reg in enumerate(reg_list):
if reg.search(line):
results[i].append[line]
return results
print(search("./log", ['1234', '1233']))
我希望我的输出是:
[['log entry 1234\n'], ['log entry 1233\n']]
但我真正得到的是:
[['log entry 1234\n', 'log entry 1233\n'], ['log entry 1234\n', 'log entry 1233\n']]
我对python很陌生,所以我可能会做一些非常愚蠢的事情,有什么想法吗?