>>> str1 = """
@ 96140 Облучье
...
"""
>>> import re
>>> level1 = None
>>> level2 = None
>>> for line in str1.split('\n'):
... result1 = re.match('^@\s+(\d+)\s+(.*)$', line)
... if result1:
... level1 = f'{result1.group(1)};{result1.group(2)}'
... continue
... if re.match('^#', line):
... level2 = line
... continue
... if level1 and level2:
... print(f'{level1};{level2};{line}')
...
96140;Облучье;# 01 Путей в парке: 2;1 гл 0 - - эц % 0000 р 1150 80 ?/? ГЛ
96140;Облучье;# 01 Путей в парке: 2;2 гл 0 - - эц % 0000 р 1150 80 ?/? ГЛ
96140;Облучье;# 02 Путей в парке: 10;3 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 02 Путей в парке: 10;1 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 02 Путей в парке: 10;5 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 02 Путей в парке: 10;7 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 02 Путей в парке: 10;9 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 02 Путей в парке: 10;11 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 02 Путей в парке: 10;13 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 02 Путей в парке: 10;15 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 02 Путей в парке: 10;17 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 02 Путей в парке: 10;19 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 03 Путей в парке: 11;20 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 03 Путей в парке: 11;18 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 03 Путей в парке: 11;16 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 03 Путей в парке: 11;14 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 03 Путей в парке: 11;12 по 0 - - эц % 0000 р 1150 80 ?/? ПО
96140;Облучье;# 03 Путей в парке: 11;