Код: Выделить всё
argparse.REMAINDER. Все остальные аргументы командной строки собираются в список. Это обычно полезно для утилит командной строки, которые отправляют сообщения другим утилитам командной строки.
Это было удалено из документации 3.9, хотя нет никаких упоминаний о том, что она устарела, и нет никаких веских причин для этого, что я вижу, учитывая, что она обеспечивает полезную функциональность, явно не предоставляемую другими средствами.¹ Его существование все еще упоминается вскользь в другом месте страницы:
Эти [смешанные] парсеры не поддерживают все функции argparse и вызывают исключения, если используются неподдерживаемые функции. В частности, не поддерживаются поданализаторы, argparse.REMAINDER и взаимоисключающие группы, включающие как опциональные, так и позиционные параметры.
Но даже это удалено в документации 3.11. Тем не менее, эта функция сохраняется даже в Python 3.11.4, последней выпущенной версии.
Так почему же она была удалена из документации?
Я спрашиваю об этом, потому что ответ, похоже, напрямую связан с несколькими другими связанными с мной вопросами о программировании анализаторов аргументов в Python. (Конкретные ситуации, в которых я использовал, использую и могу продолжать использовать nargs=REMAINDER- Не работает ли API каким-либо образом для моих целей, и означает ли это, что мой код, который его использует, также сломан?
- Следует ли мне искать замену этому API?
- Следует ли мне продолжать использовать этот API в новом коде? В конце концов, он не устарел.
- Должен ли я конвертировать существующий код, использующий этот API, для использования чего-то другого?
¹ nargs=REMAINDER отличается от nargs='*': использование REMAINDER означает, что с этого момента argparse не будет пытаться анализировать параметры (начинающиеся с -). Таким образом, при использовании REMAINDER mycmd -q run bash -c exit не будет пытаться анализировать -c как опцию mycmd, а вместо этого строка будет обрабатываться как mycmd -q run -- bash -c exit с '*'.
Подробнее здесь: https://stackoverflow.com/questions/769 ... -remainder