Как избежать дубликатов при записи chat.id в файл?

Есть код:
global sub
sub = [line.rstrip('_\n') for line in open(subfile,'rt')]
if str(m.chat.id) not in sub:
	with open(subfile, 'a') as f:
		f.write(str(m.chat.id) + " \n")
else:
        bot.send_message(m.chat.id, 'hi')


Он записывает m.chat.id в файл sub. По идее, он должен делать это только 1 раз, но он делает это каждый раз не смотря на if else и из-за этого появляются дубликаты. Как это исправить?
  • Вопрос задан
  • 182 просмотра
Пригласить эксперта
Ответы на вопрос 1
@id2669099
вот так точно должно работать
f = open('file.txt', 'r')
for line in f:
    if str(m.chat.id) in line:
        f.close()
        break
    else:
        f = open('file.txt', 'a')
        f.write(str(m.chat.id) + '\n')
        f.close()
        bot.send_message(m.chat.id, 'hi')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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