Не могу понять почему ответы не сохраняются в файле. Надо ввести имя пользователя неоднократное кол-во раз

Рейтинг: 0Ответов: 1Опубликовано: 22.01.2023
with open('guest_book', 'w') as file_object:
    while True:
        name = input('')
        if  name == 1:
            break
        file_object.write(name)

Ответы

▲ 0

Предположу, что цикл ввода вы завершаете сами нажатимем Ctrl-C (ваше условие с break не сработает, потому что при сравнение строки и числа ответ всегда False). Из-за этого всё, что вы ввели не записывается в файл (особенность работы буфера записи в файл).
Чтобы исправить эту ошибку достаточно сравнивать ввод со строкой, при которой нужно завершить цикл ввода.

with open('guest_book', 'w') as file_object:
    while True:
        name = input('')
        if  name == '1': # <---
            break
        file_object.write(name)

Однако так все "имена", введенные пользователем, будут записаны в одну строку и без разделителя. Так добавим же разделитель

file_object.write(name + '\n')

Ну и добавлю "современный" код

with open('guest_book', 'w') as file_object:
    while (name:=input('')) != '1':
        file_object.write(name + '\n')