вы можете избежать перекомпиляции вашего регулярного выражения для каждого файла:
precompiled = []
for phrase in phrases:
b1, b2 = str(phrase).strip().split(" ")
precompiled.append(b1+"_"+b2, re.compile(r"%s\ *\t*\n*%s"%(b1,b2), re.IGNORECASE))
for (input, output) in ...:
with open(output,"w") as o:
with open(input) as i:
data = i.read()
for (pattern, regex) in precompiled:
data = regex.sub(pattern, data)
o.write(data)
то же самое для одного файла, но если вы повторяете для многих файлов, то вы повторно используете регулярные выражения.
заявление об отказе: не проверено, может содержать опечатки.
[ update ] также вы можете немного упростить регулярное выражение, заменив различные пробелы на \s*
.я подозреваю, что у вас есть ошибка, в которой вы хотели бы соответствовать " \t "
, а в настоящее время нет.