background У меня есть сценарий, в котором я использую parseargs
для частичного анализа ввода.
parser = argparse.ArgumentParser()
parser.add_argument("-c", action="store_true")
nspc = parser.parse_known_args()
Причина использования parseargs заключается в том, чтобы разрешить использование параметра -c в любом месте ввода. Я хочу разобрать только эту опцию, а затем позже в коде я самостоятельно выполняю дополнительный анализ. Причина этого в том, что сценарий принимает большое количество аргументов из файла конфигурации, т. е. myscript.py не знает эти аргументы до момента выполнения.
проблема Проблема, с которой я сталкиваюсь, заключается в том, что некоторые аргументы могут начинаться с буквы "с", поэтому, если я скажу
$ myscript.py "some argument" -cdef
я получаю ошибку
myscript.py: ошибка: аргумент -c: игнорируется явный аргумент 'ef'
Поскольку я сказал parser.add_argument("-c", ...
, я ожидал, что -c
будет проанализирован, а -cdef
- нет. Очевидно, что -c
является необязательным аргументом.
Как я могу сказать синтаксическому анализатору, что -c
— это вариант, а -cdef
— нет?