Команда adb shell am
(диспетчер активности) имеет такие параметры:
[--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]
Насколько мне известно, argparse
- это способ Python для анализа аргументов. Мне нужно действие, которое должно:
- состоит из 2 или более аргументов (например,
--eia key1 1 2 3
) (см. последний пункт) - является необязательным
- edit это может произойти несколько раз, например.
--eia key1 1,2 --eia key2 2,1
действительно - тип первого аргумента может отличаться от типа остальных
- другие необязательные аргументы, подобные этому, могут существовать
- в примере есть разделитель
,
, но я хотел бы разрешить разделять пробелами, потому что мои фактические значения аргументов могут быть строками, и я хотел бы оставить их синтаксический анализ в оболочке (если строка должна начинаться с-
, кавычки помогите:"-asdf"
)
На другой вопрос есть ответ, который может сделать это с позиционными аргументами:
parser = argparse.ArgumentParser(usage='%(prog)s [-h] file file [file ...]')
parser.add_argument('file1', nargs=1, metavar='file')
parser.add_argument('file2', nargs='+', metavar='file', help=argparse.SUPPRESS)
namespace = parser.parse_args()
namespace.file = namespace.file1 + namespace.file2
Но я не вижу, работают ли они и для необязательных аргументов?
С моими требованиями стоит ли вообще начинать с argparse
? Есть ли другие варианты?