@il14

Как сделать корректную запись в Python без перезаписи?

Ситуация такая. Пишу Телеграм-бота на Python с использованием Telebot (не важно но на всякий случай). Хочу чтобы бот записывал ID пользователя в файл .txt с разрывом строки. Мне уже подсказали как сохранять ID пользователя, за что я очень благодарен. Проблема в том, что если я дважды запускаю бота, бот дважды записывает мой ID. Я погуглил методы записи и составил такой код:
handle = open("test.txt", "a+")
    for line in handle:
        if line == m.chat.id:
            None
        else:
         handle.write(str(m.chat.id))
         handle.write('\n')
    handle.close()

То есть он читает текст по строкам и если строка соответствует ID пользователя то не делает ничего, в противном случае пишет ID. Но после этого он перестал писать вообще. Что я сделал не так?
  • Вопрос задан
  • 355 просмотров
Пригласить эксперта
Ответы на вопрос 2
А ты пробовал создать sqlite базу вместо txt, и использовать её для кеширование? Если нет то используй её, или другие способы сохранение данных на python. Вот целая глава про Date Persistence для Python https://docs.python.org/3/library/persistence.html. Там описаны более эффективны способы сохранение данных. Не поленись, и потрать пол чеса на то, чтобы ознакомится с ними. Результат ждать не будет!!!
Ответ написан
@dmshar
Как минимум у вам проблемы с отступами - начиная со второй строки до последней. Зачем там сдвиг???
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы