Я использую модуль argparse
для этого проекта python. Я хочу получить доступные флаги из объекта ArgumentParser
, прежде чем звонить parse_args()
. У кого-нибудь есть идеи?Как получить флаги из объекта ArgumentParser?
0
A
ответ
3
получил от этого исходного кода add_argument():
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('-v', '--verbosity', help='more debug info', action='store_true')
_StoreTrueAction(option_strings=['-v', '--verbosity'], dest='verbosity', nargs=0, const=True, default=False, type=None, choices=None, help='more debug info', metavar=None)
>>> parser._option_string_actions.keys()
['-v', '-h', '--verbosity', '--help']
>>>
1
Я пытался решить этот другой день, и я никогда не получил удовлетворительного ответа, кроме следующих на то, что из @vvoody сделал.
In [117]: map(lambda x : x.dest,parser._actions)
Out[117]: ['help', 'verbosity']
Преимущество заключается в том, что он удаляет все псевдоним -v
== --verbosity
и т.д. НО если вы измените dest
для --verbosity
dest='loud'
например, то он возвращает loud
, который может или не может быть проблемой.
Кажется очевидной вещью для argsparse
, чтобы обеспечить из коробки.
Смежные вопросы
- 1. Как получить imap-флаги?
- 2. Как получить флаги javac из скомпилированного класса
- 3. Как получить флаги из значения enum?
- 4. Как получить битовые флаги предикат
- 5. питона, как получить флаги файлов
- 6. ArgumentParser для numpy array
- 7. Правильный способ получения разрешенных аргументов от ArgumentParser
- 8. Получить все содержащие флаги
- 9. Настройка ArgumentParser Python с двумя взаимно исключающими флагами, где один флаг имеет необязательные дополнительные флаги
- 10. Fabric fabfil исполнение модели ArgumentParser
- 11. ошибки обработки в Python ArgumentParser
- 12. Как разбирать специальные символы в аргументе ArgumentParser()?
- 13. доступа к переменной ArgumentParser с переменной окружения
- 14. Как я могу перечислить все зарегистрированные аргументы из экземпляра ArgumentParser?
- 15. Как проверить, содержит ли аргумент ArgumentParser аргумент?
- 16. Как получить значение объекта из другого объекта
- 17. Как распознать флаги x509
- 18. Как получить флаги, возвращенные recvmsg() с recvfrom()
- 19. Получить ключ объекта из объекта
- 20. Как получить переменную из «объекта»
- 21. Как получить значение из объекта
- 22. Как получить значения из объекта?
- 23. Как получить значение из объекта
- 24. Передача как передавать многопроцессорные флаги в Python
- 25. ArgumentParser -h не печатать параметры после parse_known_args
- 26. Как удалить пользователя Флаги из сообщения?
- 27. Как читать флаги компилятора из файла
- 28. Как получить значение из объекта из args.getDataKeyValue
- 29. Объект ArgumentParser не имеет атрибута 'parse_arg'
- 30. python ArgumentParser - ошибка: непризнанные аргументы: ip_2 '127.0.0.1'`
Я думаю, что vvoody's ближе к тому, что мне нужно. Это странно, что нам нужно получить доступ к приватному методу для любой из этих вещей:/ – sfendell
В моем случае я пытался установить параметры по умолчанию для env vars, так что '' $ FOO = bar'' в среде установите dest = foo, будь то '' --foo'' или '' -f'' или что-то еще. Согласовано, что кажется странным использовать частные методы для доступа к данным esp. когда может быть несоответствие между опцией и подсказкой модели intenal от argparse. – sotapme