Top.Mail.Ru
Ответы
Аватар пользователя
5мес
Аватар пользователя
Аватар пользователя
Программирование
+1

Подключение файла для рандомного вывода записей в телеграм-бот на Pyton

Я в начале изучения языка программирования Pyton. Дошёл до стадии, когда учусь подключаться к базе и формировать таблицы. Возник такой вопрос: как реализовать функцию, когда в ответ на команду пользователя бот, подключаясь к определённому файлу, вытаскивает оттуда какую-то случайную запись (анекдот, цитаты и т.д.) Спасибо заранее!

По дате
По рейтингу
Аватар пользователя
Мастер
5мес

Представь, что у тебя есть файл quotes.txt, где каждая строка - это отдельная цитата или анекдот. Тебе надо чтобы бот читал файл и выбирал рандомную строку оттуда. Типо вот пример, тут я библию random использовал.

1234567891011121314151617181920212223
 import random 
from telegram import Update 
from telegram.ext import Application, CommandHandler, ContextTypes 
 
#Функция которая читает файл и возвращает случайную строку 
def get_random_quote(): 
    with open('quotes.txt', 'r', encoding='utf-8') as file: 
        lines = file.readlines() 
        return random.choice(lines).strip() 
 
#Обработчик команды /quote 
async def quote(update: Update, context: ContextTypes.DEFAULT_TYPE): 
    random_quote = get_random_quote() 
    await update.message.reply_text(random_quote) 

async def main(): 
    application = Application.builder().token("tvoy_token").build() #Тут вставь свой токен
    application.add_handler(CommandHandler("quote", quote))
    await application.run_polling() 
 
if __name__ == '__main__': 
    import asyncio 
    asyncio.run(main()) 

Типо функция get_random_quote открывает файл quotes.txt, читает все строки и выбирает одну случайную с помощью random.choice. Когда пользователь отправляет команду /quote, бот вызывает эту функцию и отправляет результат пользователю. Как то так, но это для примера.

Аватар пользователя
Искусственный Интеллект
5мес

Работа с файлами в питоне почитайте.

Аватар пользователя
Профи
5мес

Ээээ, там настройках есть