Goshujin
@Goshujin
Я только начал изучать Python, не бейте.

Как парсить аргументы команды?

Допустим, есть команда:
async def test(ctx, user: discord.User): await ctx.send(f"Hello, {user.mention}!")


Я хочу сделать так, чтобы аргументы можно было парсить из команд, например:
.test --user @user

Но в интернете находил только модули для парсинга из командной строки. Подскажете как можно такое реализовать?
  • Вопрос задан
  • 125 просмотров
Решения вопроса 2
Vindicar
@Vindicar
RTFM!
Выше решение уже подсказали, но я добавлю от себя:
async def my_command(ctx, *arguments)
Тогда arguments уже будет разбито на слова, но по правилам discord.py (т.е. с учетом кавычек и т.п.).
Останется только скормить результат в argparse.
Не забудь передать в конструктор ArgumentParser() параметр exit_on_error=False, иначе неверная командная строка будет ронять всё приложение.
Ответ написан
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Разбить строку команды по пробелу и полученный список скормить argparse.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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