Проблема в том что программа удаляет пробелы и тире из файла а после записывает файл а цикл for не выполняется в этом файле почему? Как это исправить? Но интересно то что в командной строке весь процесс отображается правильно он только записывается почему то не так(
вот код
def change():
file_name = fd.askopenfilename()
file_name1 = 'второй файл'
f = open(file_name,'r')
lines = f.read()
lines = lines.replace('Путей в парке', '')
lines = lines.replace(';--------------', '')
while " " in lines:
lines = lines.replace(" ", " ")
level1 = None
level2 = None
for line in lines.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:
if level1 and level2 and line:
line = lines.replace(' ', '; ')
print(f'{level1};{level2}{line}')
save_changes = open(file_name1, 'w')
save_changes.writelines(line)
save_changes.close()
Вот пример файла
;--------------
@ 96140 Облучье
# 01 Путей в парке: 2
1 гл 0 - - эц % 0000 р 1150 80 ?/? ГЛ
2 гл 0 - - эц % 0000 р 1150 80 ?/? ГЛ
# 02 Путей в парке: 10
3 по 0 - - эц % 0000 р 1150 80 ?/? ПО
# 03 Путей в парке: 11
20 по 0 - - эц % 0000 р 1150 80 ?/? ПО
;--------------
@ 91000 Тында
# 01 Путей в парке: 4
1 по 0 - - эц % 0000 р 1150 80 ?/? ПО
Должно быть так
64759;Аккуль;# 01 Путей в парке: 4; 1; гл; 0; -; -; эц; -; 6630; р; 886/870; 60/59; +/-; ПУТЬ; ГЛ1;
64759;Аккуль;# 01 Путей в парке: 4; 2; гл; 0; -; -; эц; -; 6630; р; 861; 58; +/-; ГЛ;
64759;Аккуль;# 01 Путей в парке: 4; 3; по; 0; -; -; эц; -; 6630; р; 899; 61; +/-; ПО;