Не сохраняются строки в txt файле python

Рейтинг: 0Ответов: 1Опубликовано: 18.08.2023

Я написал программу, должна сохранения текста, который ввел пользователь

    import os

print("Назовите имя файла и его расширение")
name = input()
stroka = 1
while True:
    a = input(f"Строка {stroka}: ")
    if a == 'выйти':
        print("Вы уверены, что хотите выйти?")
        if input() == 'да':
            exit()
        else:
            test = open(name, 'a', encoding = 'utf-8')
            test.write(a + "\n")
            stroka = stroka + 1
    else:
        test = open(name, 'a', encoding = 'utf-8')
        test.write(a + "\n")
        stroka = stroka + 1

Но она не сохраняет последнюю введенную строку (если после последней строки два раза не оставить пустую строку)

Ответы

▲ 1Принят

Вот этот код должен работать нормально:

name = input("Введите имя файла и его расширение: ")
stroka = 1
f = False
while True:
    a = input(f"Строка {stroka}: ")
    if a == 'выйти':
        if input("Вы уверены, что хотите выйти? ") == 'да':
            if f: f.close()
            exit()
        else: continue
    else:
        f = open(name, 'a', encoding = 'utf-8')
        f.write(a + "\n")
        stroka += 1

Проблема в вашем коде была в том, что вы не закрывали файл перед выходом из программы. Из-за этого последняя строчка не сохранялась.