Если строки всегда имеют такой формат STLB <number> <number> <text>
, это сработает:
код
with open(in_file5, 'r', encoding='utf-8') as fin5, open(out_file5, 'w', encoding='utf-8') as fout5:
for l in fin5:
l = re.sub(r'(STLB\s*\d+\s*\d+)\s*', r'\1\n', l)
fout5.write(l)
fout5.write('\n')
Input
STLB 1234 444 text text text
STLB 8796 567 text text text
выход
STLB 1234 444
text text text
STLB 8796 567
text text text
Обратите внимание на \s*
в конце RegEx, но группа захвата заканчивается раньше, поэтому эти конечные пробелы не учитываются.
Использование понимания списка и writelines
with open(in_file5, 'r', encoding='utf-8') as fin5, open(out_file5, 'w', encoding='utf-8') as fout5:
fout5.writelines([re.sub(r'(STLB\s*\d+\s*\d+)\s*', r'\1\n', l) for l in fin5])
Дайте мне знать, если это работает для вас