Python 正規表現を使用してファイルを検索するのに少し問題があります。
正規表現のリストを入力し、それらの 1 つに一致するファイルの行を、rexex リストと同じ方法でインデックス付けされたギザギザのリストに返したいと思います。つまり、行が最初の正規表現に一致する場合、追加されます: results[0].append(line)
2 番目が一致する場合: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にかなり慣れていないので、本当にばかげたことをしている可能性があります。それは何ですか?