Вы можете читать из входного файла и одновременно записывать в выходной файл, например:
current = []
with open('DEFIS.TXT', 'r') as f_in, open('DEFIS-OUT.TXT', 'w') as f_out:
for line in map(str.strip, f_in):
if line.startswith('D1000'):
if current:
print('|'.join(current), file=f_out)
current = []
current.append(line)
#save last chunk (if any):
if current:
print('|'.join(current), file=f_out)
Если DEFIS.TXT
содержит:
D1000
1
2
3
D1000
4
5
6
D1000
7
8
9
Тогда DEFIS-OUT.TXT
после запуска скрипта будет содержать:
D1000|1|2|3
D1000|4|5|6
D1000|7|8|9