Может ли телеграм бот создавать, а потом удалять txt файлы?

Мне нужно, чтобы после команды стар создавал пустой txt файл. Потом он задаёт пару вопросов и записывает их в файл(это я уже сделал). Этот файл он должен отправить в другой чат и удалить этот файл. Вот такой алгоритм создать - заполнить - отправить - удалить.Как это реализовать?

def questionA1(message):
    name2 = message.text
    open(R'C:\Users\Ray\Desktop\List.txt', 'a').write('Name:'  + name2 + '\n')
    bot.send_message(message.from_user.id, 'Please enter your last name')
    bot.register_next_step_handler(message, questionA2)

def questionA2(message):
    LastName2 = message.text
    open(R'C:\Users\Ray\Desktop\List.txt', 'a').write('Last name:'  + LastName2 + '\n')
    bot.send_message(message.from_user.id, 'Please enter your number')
    bot.register_next_step_handler(message, questionA3)


def questionA3(message):
    number2 = message.text
    open(R'C:\Users\Ray\Desktop\List.txt', 'a').write('Number:'  + number2 + '\n')
    bot.send_message(message.from_user.id, 'Номер')
    bot.register_next_step_handler(message, send)

Вот код. Это телеграм бот. библиотека pytelegrambotapi


Ответы (1 шт):

Автор решения: Violet
from pathlib import Path
from glob import glob
from datetime import datetime


@bot.message_handler(commands=['start'])
def start(message):
    Path('files/{}.txt'.format(message.chat.id)).touch()
    msg = bot.send_message(message.chat.id, 'Первый вопрос')
    bot.register_next_step_handler(msg, start_2)


def start_2(message):
    msg = bot.send_message(message.chat.id, 'Второй вопрос')
    bot.register_next_step_handler(msg, start_3, message.text)


def start_3(message, answer_1):
    msg = bot.send_message(message.chat.id, 'Третий вопрос')
    bot.register_next_step_handler(msg, start_4, answer_1, message.text)


def start_4(message, answer_1, answer_2):
    print('ответ на первый вопрос', answer_1)
    print('ответ на второй вопрос', answer_2)
    print('ответ на третий вопрос', message.text)
    open('files/{}.txt'.format(message.chat.id), 'w').write(str(datetime.now()) + ' ' + str(message.chat.id) + '\n' +
                                                            answer_1 + ' ' + answer_2 + ' ' + message.text)
    for txt_file in glob(r'files\*.txt'):
        f = open(txt_file, 'rb')
        bot.send_document(123, f)
        f.close()
    Path(glob(r'files\*.txt')[0]).unlink()
  • создаём файл, название которого id пользователя, с помощью Path
  • используя register_next_step_handler создаём шаги, передавая ответы
  • открываем файл который создали на запись, пишем в него: время, id, три ответа.
  • glob поможет нам выбрать все текстовые файлы из каталога.
  • откроем, отправим, закроем, удалим с помощью Path

Pathlib glob

→ Ссылка