Выдает ошибку I/O operation on closed file и не знаю как исправить

Рейтинг: 0Ответов: 1Опубликовано: 04.03.2023
f = open('newfile.txt', 'r+')
toades = ["..."]

while hoy:
    ope_n = input('(помощь: "/жабы") для открытия жаб-бокса введите: "открыть" | ')
    if ope_n == 'открыть':
        toad = random.choice(toades)
        print("вот это жаба! вам выпала", toad)
        give = input("забрать жабу? (да/нет) | ")
        if give == 'да':
            f.write(toad + " \n")
            f.close()
        print(' ')

нужно как-то исправить ошибку, оставив при этом open в переменной и не закончить цикл.

Ответы

▲ 0

не надо закрывать с помощью функций f.close()

toades = ["..."]
with open('newfile.txt', 'r+') as f:
    while hoy:
        ope_n = input('(помощь: "/жабы") для открытия жаб-бокса введите: "открыть" | ')
        if ope_n == 'открыть':
            toad = random.choice(toades)
            print("вот это жаба! вам выпала", toad)
            give = input("забрать жабу? (да/нет) | ")
            if give == 'да':
                f.write(toad + " \n")
        print(' ')