Как сделать сохранение всех сообщений отправленных пользователями боту телеграмм на телеботе без бд?
Мне нужно как то сделать без бд сохранение всех сообщений отправленных пользователями, и так же время отправки(необязательно) юзернейм их, и само сообщение, надеюсь на вашу помощь.
Сохранить в каком виде?
Вывалить всё кучей в текстовый файл - дело нехитрое.
Попробуй сам, приведи код, тогда можно будет обсудить.
Сейчас это задание, а не вопрос.
Vindicar, Сохранить в виде тхт, на счет кода хз, какой с него смысл будет, мне бы просто сохранить сообщения в тхт файл, тип чтобы каждую строчку новое сообщение, например
Юзернейм | Сообщение | Дата
iDelix, так. Сообщения об ошибках были? Файл создавался пустым или не создавался? Если вставить print('foo') в начало, в терминале текст появляется? В целом если взять пример эхо-бота из документации, он работает?
iDelix, нет, занят.
Если коротко, можно проверить ещё две вещи касательно open('logs.txt', '+')
Во-первых, попробуй задавать абсолютный путь к файлу. Относительный путь задаётся относительно текущего рабочего каталога, хз какой он у тебя. Рабочий каталог может совпадать или не совпадать с каталогом скрипта, так что может быть так, что бот всё прекрасно пишет, просто файл находится где-то в другом месте.
Во-вторых, попробуй открывать в режиме 'at'.
import sys, pathlib
SCRIPT_DIR = pathlib.Path(sys.argv[0]).parent # каталог, где лежит текущий выполняемый скрипт
LOG_PATH = SCRIPT_DIR / 'logs.txt'
@client.message_handler(content_types=['text'])
def save(message):
with open(LOG_PATH, 'at') as dst:
dst.write('{0.first_name}Написал {0.first_message})\n')