@Jlokys

Python не перезаписывает изменения в файл как нужно, почему?

Проблема в том что программа удаляет пробелы и тире из файла а после записывает файл а цикл 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; +/-; ПО;
  • Вопрос задан
  • 261 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы