AnswerBun.com

Как делаются команды с опциями? Python Telegram бот

Пример:
/check (Текст)
(Текст) должно записываться в переменную

2 Answers

Вам поможет split():

Отправим боту: /check 1 2 3

@bot.message_handler(commands=['check'])
def check(message):
    print(message.text.split())

>>> ['/check', '1', '2', '3']

    print(message.text.split()[1])  # [0] будет выводить /check
    print(message.text.split()[2])
    print(message.text.split()[3])

>>> 1
    2
    3

только не забывайте обрабатывать len() и delimiter

Correct answer by Violet on December 28, 2020

Никак. Такого прям синтаксиса или готовых методов библиотеки нет. Вы видите команду в пакете пришедшем от Телеграм, и дальше просто производите парсинг всей оставшейся строки. Только вручную. Так как прям синтаксиса команды с параметрами в самом Телеграме не зафиксировано ни какого. Можно так:

/command1567

в этом лучае нужно будет парсить само тело команды что бы выделить из него параметр 1567

можно так:

/command 1567

в этом случае нужно будет парсить оставшуюся строчку после команды

а можно придумать и свои варианты типа:

/command param=value

тогда парсинг команды будет в разы проще, но как единая ссылка работать эта команда не сможет, а значит её и второй мной указанный вариант будет сложней использовать пользователю вашего бота

Answered by Сабир Исламов on December 28, 2020

Add your own answers!

Related Questions

StatusBar белый в Android 6.0

1  Asked on November 30, 2021 by modal

   

Syntax error: end of file unexpected

2  Asked on November 30, 2021

   

Код ответа 204 приводит к ошибке

1  Asked on November 27, 2021 by mccrack

         

Анимация SVG стрелки

1  Asked on November 27, 2021

       

Наследование в шаблонах twig не работает

0  Asked on November 27, 2021 by antony-lapitskiy

   

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved.